光滑的SQL转义PostgreSQL json函数

时间:2018-01-17 19:28:32

标签: scala slick

我试图在此查询中逃避self.navigationController?.navigationBar.isTranslucent = true 运算符:

?|

然而val data = sql""" SELECT ...... FROM ....... WHERE table.column ?| array['23', '12'] """.as[Int].head db.run(data) 运算符在查询中被翻译为?|(在数据库查询日志中检查),它显然会生成错误

$1|

我已尝试ERROR: syntax error at or near "$1" at character 735 #?|但没有成功

1 个答案:

答案 0 :(得分:1)

?是JDBC中参数的占位符(Slick之后的级别)。您可以将? specifically for PostgreSQL转义为??|。在SO 14779896 - Does the JDBC spec prevent '?' from being used as an operator中对此进行了有用的讨论。

该惯例的替代方案是使用非符号替代方案:jsonb_exists_any。例如,

WHERE jsonb_exists_any(table.column, array['23', '12'])