如何在PostgreSQL中使用LIKE运算符和占位符语法?

时间:2017-09-15 02:14:25

标签: postgresql

假设您有这样的查询:

SELECT * FROM the_table WHERE (name LIKE %$1%) LIMIT 10

这样的值数组:

[tyrone]

查询在没有与LIKE运算符一起使用的%%语法的情况下工作。是否有可能将这些想法结合起来?我可以找到对LIKE运算符的任何引用都放弃使用占位符。

尝试上述查询时收到以下错误:

  

{ “名称”: “错误”, “长度”:90, “严重性”: “ERROR”, “代码”: “42601”, “位置”: “38”, “文件”:“scan.l里”, “线”: “1086”, “常规”: “scanner_yyerror”}

1 个答案:

答案 0 :(得分:2)

SQL没有字符串插值,因此您不能在字符串文字中使用占位符。您必须改为使用连接,例如

SELECT * FROM the_table WHERE (name LIKE '%' || $1 || '%') LIMIT 10

请注意,'%' || NULL的结果为NULL