在我使用的各种SQL产品中,问号(?)标记查询中的输入参数。
如何逃避该行为并搜索包含问号的文本,例如......
SELECT *
FROM A_TABLE
WHERE A_FIELD = 'This is a question mark not an input parameter?'
...上面的问号是字面问号,而不是占位符。如果答案是特定于产品的,我目前正在使用Derby(又名Java DB)。
答案 0 :(得分:4)
您根本不需要逃避?
。与您发布的情况一样,它与WHERE
子句没有特殊含义。
答案 1 :(得分:0)
如果您的用例是检查 jsonb
列是否具有您指定的键,那么只需添加 ?
将返回 Cause: org.postgresql.util.PSQLException: No value specified for parameter
。
在 mybatis 中,解决方案是使用双问号 (?
) 而不是使用单问号 (??
)。
例如:
SELECT * from table where jsonb_column ?? 'key'