假设您有这样的查询:
SELECT * FROM the_table WHERE (name LIKE %$1%) LIMIT 10
这样的值数组:
[tyrone]
查询在没有与LIKE运算符一起使用的%%语法的情况下工作。是否有可能将这些想法结合起来?我可以找到对LIKE运算符的任何引用都放弃使用占位符。
尝试上述查询时收到以下错误:
{ “名称”: “错误”, “长度”:90, “严重性”: “ERROR”, “代码”: “42601”, “位置”: “38”, “文件”:“scan.l里”, “线”: “1086”, “常规”: “scanner_yyerror”}
答案 0 :(得分:2)
SQL没有字符串插值,因此您不能在字符串文字中使用占位符。您必须改为使用连接,例如
SELECT * FROM the_table WHERE (name LIKE '%' || $1 || '%') LIMIT 10
请注意,'%' || NULL
的结果为NULL
。