楼上都理解错了,楼主要查询 SELECT * FROM TEST WHERE re like '%_%' or re like '%\%' or re like '%$%'
我的意思是分别查出 Re 中包含 "%","_","\" 的数据 SELECT * FROM TEST WHERE re like '%_%' 这个 语句 会查询出所有的数据
SELECT * FROM TEST WHERE re like E'%\_%' or re like E'%\\%' or re like E'%\$%'
试验结果发现 SELECT * FROM TEST WHERE re like E'%\_%'查出了所有的数据SELECT * FROM TEST WHERE re like E'%\\%'一条数据查不出来SELECT * FROM TEST WHERE re like E'%\$%'并不需要逃逸SELECT * FROM TEST WHERE re like '%$%' 一样可以查出所需要的结果
SELECT * FROM TEST WHERE re like E'%\\_%'; SELECT * FROM TEST WHERE re like E'%\\\\%';多加一个\试一试
http://www.postgresql.org/docs/8.4/interactive/sql-syntax-
lexical.html#SQL-SYNTAX-IDENTIFIERS如
E'a\'bc'
'a''bc'
$$a'bc$$
楼上都理解错了,楼主要查询
SELECT * FROM TEST WHERE re like '%_%' or re like '%\%' or re like '%$%'
SELECT * FROM TEST WHERE re like '%_%'
这个 语句 会查询出所有的数据
试验结果发现
SELECT * FROM TEST WHERE re like E'%\_%'查出了所有的数据SELECT * FROM TEST WHERE re like E'%\\%'一条数据查不出来SELECT * FROM TEST WHERE re like E'%\$%'并不需要逃逸SELECT * FROM TEST WHERE re like '%$%' 一样可以查出所需要的结果
SELECT * FROM TEST WHERE re like E'%\\\\%';多加一个\试一试