PostgreSQL中如何转义单引号实现含单引号字符串的LIKE查询
PostgreSQL中查询包含单引号的字符串的正确方法
在PostgreSQL里查询包含单引号的字符串时,直接写'%'%'会因单引号截断字符串触发语法错误,正确的处理方式如下:
1. 推荐方式:使用双单引号转义
PostgreSQL遵循SQL标准,用两个连续的单引号表示一个实际的单引号字符。修正后的SQL语句为:
select * from app_user au where au.last_name like '%''%'
这种方式不依赖任何参数设置,兼容性最好,是最稳妥的写法。
2. 扩展字符串(E'')方式
如果习惯用反斜杠转义,可以使用PostgreSQL的扩展字符串语法(前缀E),此时反斜杠会被当作转义符:
select * from app_user au where au.last_name like E'%\'%'
但这种方式依赖数据库参数,通用性不如双单引号写法。
3. 指定转义字符
也可以通过escape关键字指定转义字符,比如用反斜杠作为转义符:
select * from app_user au where au.last_name like '%\'%' escape '\'
同样,这种写法的通用性不如双单引号,仅适用于特定场景。
内容的提问来源于stack exchange,提问作者mtmx
相关产品推荐
相关产品推荐

