我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何在 SQLX 中执行条件操作

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何在 SQLX 中执行条件操作

学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《如何在 SQLX 中执行条件操作》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

我有数据库存储功能: func (p *ProductsRep) FindAll(PageNumber int, PaginationSize int, 查询字符串) []*postgresmodels.Product {

此外,我的 SQL 查询如下所示: SELECT * FROM table_name

然后我想连接像 WHERE some_value=3 这样的条件操作,如果存在某个值(在本例中为查询),那么我想从 table_name WHERE some_value=3 获取 SELECT *。 我尝试使用 fmt.Sprintf 进行连接,或 strings.Joinbytes.Buffer.WriteString。但每次我收到此错误时:

我将实际价值替换为理解: pq:列“某些值”不存在。

如何进行“自适应”查询,这取决于输入的函数值。


解决方案


我相信您正在尝试使用参数查询数据库中的行。

由于存在 sql 注入的潜在风险,您需要确保不会将此数据作为 raw 值传递。您可以使用存储过程进行查询

您可以使用函数 query 来传递带有参数的查询。在示例中,这是 $1。如果您愿意,可以添加 $2、$3... 等,具体取决于您要查询的参数数量

这里有两个例子

postgres 使用“github.com/jackc/pgx/v4”驱动程序

ctx := context.background()
    type bar struct {
        id        int64
        somevalue string
    }

    rows, err := conn.query(ctx, `select * from main where some_value=$1`, "foo")
    if err != nil {
        fmt.println("erro")
        panic(err) // handle error
    }
    defer rows.close()

    var items []bar
    for rows.next() {
        var somevalue string
        var id int64
        if err := rows.scan(&id, &somevalue); err != nil {
            log.fatal(err) // handle error
        }
        item := bar{
            id:        id,
            somevalue: somevalue,
        }
        items = append(items, item)
    }
    fmt.println(items)

mysql 驱动程序 https://golang.org/pkg/database/sql/#DB.QueryRow

type Bar struct {
        ID        int64
        SomeValue string
    }

    rows, err := conn.Query(`SELECT * FROM main WHERE some_value=$1`, "foo")
    if err != nil {
        fmt.Println("ERRO")
        panic(err) // handle error
    }
    defer rows.Close()

    var items []Bar
    for rows.Next() {
        var someValue string
        var id int64
        if err := rows.Scan(&id, &someValue); err != nil {
            log.Fatal(err) // handle error
        }
        item := Bar{
            ID:        id,
            SomeValue: someValue,
        }
        items = append(items, item)
    }
    fmt.Println(items)

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持编程网!更多关于Golang的相关知识,也可关注编程网公众号。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何在 SQLX 中执行条件操作

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在 SQLX 中执行条件操作

学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《如何在 SQLX 中执行条件操作》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!问题内容我有数据库
如何在 SQLX 中执行条件操作
2024-04-05

如何在Hive中执行JOIN操作

在Hive中执行JOIN操作的步骤如下:编写适当的SELECT语句,其中包含要连接的表以及连接条件。例如:SELECT * FROM table1JOIN table2ON table1.column_name = table2.co
如何在Hive中执行JOIN操作
2024-03-12

如何在SQLite中执行查询操作

要在SQLite中执行查询操作,可以使用SQL语句来检索所需的数据。以下是一个简单的示例查询操作:SELECT * FROM table_name;在这个示例中,SELECT关键字用于指定要检索的列,*表示检索所有列,FROM关键字后跟表
如何在SQLite中执行查询操作
2024-04-09

如何在MySQL中执行分页查询操作

在MySQL中执行分页查询操作需要使用LIMIT子句。LIMIT子句可以限制返回的记录数量,并可以通过OFFSET子句指定开始返回记录的位置。例如,要查询第1页的记录,每页显示10条记录,可以使用以下语句:SELECT * FROM t
如何在MySQL中执行分页查询操作
2024-03-06

如何在SQLite中执行聚合函数操作

在SQLite中执行聚合函数操作非常简单,只需使用SQL语句即可。例如,如果您想计算某个表中某列的平均值,可以使用如下语句:SELECT AVG(column_name) FROM table_name;其中,AVG 是SQLite中的
如何在SQLite中执行聚合函数操作
2024-03-14

如何在MariaDB中执行批量插入操作

在MariaDB中执行批量插入操作可以使用以下两种方法:使用INSERT INTO … VALUES语句插入多个值:INSERT INTO table_name (column1, column2, column3) VALUES(val
如何在MariaDB中执行批量插入操作
2024-03-15

在SQLite中如何执行跨表更新操作

在SQLite中执行跨表更新操作,可以使用子查询或者连接查询来实现。以下是一个示例使用连接查询来实现跨表更新操作的方法:UPDATE table1SET column1 = new_valueFROM table1INNER JOI
在SQLite中如何执行跨表更新操作
2024-04-09

在SQLite中如何执行事务回滚操作

在SQLite中执行事务回滚操作可以通过使用ROLLBACK命令来实现。下面是一个简单的示例:BEGIN TRANSACTION;UPDATE users SET balance = balance - 100 WHERE id = 1;
在SQLite中如何执行事务回滚操作
2024-04-09

如何在SQLite中执行批量插入操作

在SQLite中执行批量插入操作可以通过使用事务来提高插入操作的性能和效率。以下是在SQLite中执行批量插入操作的一般步骤:开启一个事务:使用BEGIN TRANSACTION语句来开启一个事务,这将会在插入操作完成后一次性提交所有的数据
如何在SQLite中执行批量插入操作
2024-04-09

SQLServer中如何执行查询操作

在SQLServer中执行查询操作通常使用SELECT语句。例如,要查询一个名为"customers"的表中的所有数据,可以使用以下查询语句:SELECT * FROM customers;这将返回表中所有的数据。如果想要只返回特定的列,
SQLServer中如何执行查询操作
2024-04-09

如何在PostgreSQL中执行事务和回滚操作

在PostgreSQL中执行事务和回滚操作可以通过以下步骤来实现:开始一个事务:BEGIN;在事务中执行SQL操作,例如插入、更新或删除数据:INSERT INTO table_name (column1, column2) VALUES
如何在PostgreSQL中执行事务和回滚操作
2024-04-09

php中如何执行分支操作

小编给大家分享一下php中如何执行分支操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!分支执行是依据条件满足哪个语句块来执行某些代码的,在php中主要是通过if
2023-06-14

如何在Python中进行文件操作

如何在Python中进行文件操作文件操作是编程中常见的任务之一,而Python提供了丰富的文件操作功能和简洁的语法来帮助我们有效地进行文件的读写和处理。本文将介绍如何在Python中进行文件操作,并提供一些具体的代码示例。打开和关闭文件在进
2023-10-22

如何在Teradata中执行数据迁移和ETL操作

在Teradata中执行数据迁移和ETL操作通常可以通过以下几种方法:使用Teradata的内置工具:Teradata提供了一系列工具,如Teradata Parallel Transporter (TPT)、Teradata Studio
如何在Teradata中执行数据迁移和ETL操作
2024-04-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录