首页 >后端开发 >Golang >如何正确使用 Go 的 pq 驱动程序和 PostgreSQL 的 LIKE 查询?

如何正确使用 Go 的 pq 驱动程序和 PostgreSQL 的 LIKE 查询?

Linda Hamilton
Linda Hamilton原创
2024-12-12 10:49:18591浏览

How to Correctly Use LIKE Queries with Go's pq Driver and PostgreSQL?

Go PostgreSQL LIKE 查询语法

使用 PostgreSQL 和 Go 的 pq 驱动程序时,执行 LIKE 查询时可能会遇到有关语法的错误消息。让我们探讨这个问题并提供解决方案。

提供的代码中的查询是:

SELECT p.id, p.name, p.description, p.price, p.image, p.rate
FROM products AS p
WHERE LOWER(p.name) LIKE %% ORDER BY p.rate DESC

直接在 PostgreSQL 中执行此查询可以工作,但在 Go 中会引发错误:

pq:“%”处或附近的语法错误

问题在于 LIKE 的语法不正确 操作员。占位符应用单引号引起来:

SELECT p.id, p.name, p.description, p.price, p.image, p.rate
FROM products AS p
WHERE LOWER(p.name) LIKE '%' ||  || '%'
ORDER BY p.rate DESC

使用单引号可确保占位符被视为文字字符串而不是查询本身的一部分。

避免进一步的语法问题,考虑使用命名占位符而不是位置占位符:

query := `SELECT p.id, p.name, p.description, p.price, p.image, p.rate
        FROM products AS p
        WHERE LOWER(p.name) LIKE '%' || :name || '%'
        ORDER BY p.rate DESC`

product_rows, err := db.Query(query, map[string]interface{}{"name": name})

使用命名占位符可以提高代码可读性并降低语法风险错误。

以上是如何正确使用 Go 的 pq 驱动程序和 PostgreSQL 的 LIKE 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn