6

在我使用的各种 SQL 产品中,问号 (?) 标记查询中的输入参数。

如何逃避这种行为并搜索包含问号的文本,例如......

SELECT *
FROM   A_TABLE
WHERE  A_FIELD = 'This is a question mark not an input parameter?'

...上面的问号是文字问号,而不是占位符。如果答案是特定于产品的,我目前正在使用 Derby(又名 Java DB)。

4

3 回答 3

4

你根本不需要逃跑?WHERE与您发布的情况一样,它与该条款没有特殊含义。

于 2012-08-29T10:03:09.827 回答
1

如前所述,“?” 跟在等号后面不会充当通配符。要搜索包含问号的字段中的任何行,请使用:

SELECT * FROM A_TABLE
WHERE A_FIELD LIKE '%[?]%'
于 2021-09-02T21:43:25.917 回答
0

如果您的用例是检查jsonb列是否具有您指定的键,那么只需添加即可?返回Cause: org.postgresql.util.PSQLException: No value specified for parameter

在 mybatis 中,解决方案不是使用单问号 ( ?),而是必须使用双问号 ( ??)。

例如: SELECT * from table where jsonb_column ?? 'key'

于 2021-05-26T08:21:38.187 回答