我Test表中 有Re字段 text类型
其中存的数据包括PostgreSQL 中一些特殊字符 比如 “_”,"\","$"。
请问我如何来逃逸这些特殊字符。
说明白点就是我要查询 Re字段中有 “_”或者“\”或者"$"的记录。

解决方案 »

  1.   

    参考
    http://www.postgresql.org/docs/8.4/interactive/sql-syntax-
    lexical.html#SQL-SYNTAX-IDENTIFIERS

    E'a\'bc'
    'a''bc'
    $$a'bc$$
      

  2.   


    楼上都理解错了,楼主要查询
    SELECT  * FROM TEST WHERE re like '%_%' or re like '%\%' or re like '%$%'
      

  3.   

    我的意思是分别查出 Re 中包含 "%","_","\" 的数据 
    SELECT  * FROM TEST WHERE re like '%_%' 
    这个 语句 会查询出所有的数据
      

  4.   

    SELECT  * FROM TEST WHERE re like E'%\_%' or re like E'%\\%' or re like E'%\$%'
      

  5.   


    试验结果发现 
    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 '%$%' 一样可以查出所需要的结果
      

  6.   

    SELECT * FROM TEST WHERE re like E'%\\_%';
    SELECT * FROM TEST WHERE re like E'%\\\\%';多加一个\试一试