我需要執行一個查詢,以'Nome%teste \ /'作爲前綴搜索文本。我正在使用以下查詢:在ILIKE查詢中轉義
其中「名稱」ILIKE'Nome a%teste \ /%'ESCAPE'a'(使用as轉義字符)。
有一行匹配此行,但此查詢不返回任何內容。刪除斜槓('Nome%teste \'),它的工作原理。但我不明白爲什麼斜槓是一個問題,因爲默認轉義是一個反斜槓,我已經把它改爲'a'在這個測試中。
有什麼我失蹤? (我請教TFM)
我需要執行一個查詢,以'Nome%teste \ /'作爲前綴搜索文本。我正在使用以下查詢:在ILIKE查詢中轉義
其中「名稱」ILIKE'Nome a%teste \ /%'ESCAPE'a'(使用as轉義字符)。
有一行匹配此行,但此查詢不返回任何內容。刪除斜槓('Nome%teste \'),它的工作原理。但我不明白爲什麼斜槓是一個問題,因爲默認轉義是一個反斜槓,我已經把它改爲'a'在這個測試中。
有什麼我失蹤? (我請教TFM)
使用 「ESCAPE」 符
WHERE "name" ILIKE 'Nome ~% teste \\/' ESCAPE '~'
http://www.postgresql.org/docs/8.2/static/functions-matching.html
注:您仍然需要爲字符串解析器提供兩次\。
沒有逃生你需要做的
WHERE "name" ILIKE 'Nome \% test \\\\/'
(4 \「s到代表一個文字\)
謝謝,但我還是原來的問題與削減。與
WHERE "name" ILIKE 'Nome \% test \\\\/%'
搜索不給我一個結果,而
WHERE "name" ILIKE 'Nome \% test \\\\%'
(除去斜線,這是目前該行中)按預期工作。 - Kknd
它可能你的字符串沒有像你指定的文字「/」。你可能有一個null或者其他空白字符。或者可能,你有/在不同的字符集中。
我會嘗試使用這個測試對於可能的情況
WHERE "name" ILIKE 'Nome \% ' AND "name" ~* '\\.{1,10}/'
將返回已/的東西分開
您是否嘗試過只用反斜槓逃脫這樣的:
where "name" ILIKE 'Nome \% teste \\\/';
我試過線(但不是線,未見分離),但它不起作用。 – Kknd 2008-10-13 03:25:24
謝謝,但我仍然有斜線的原始問題。使用WHERE名稱搜索ILIKE'Nome \%test \\\\ /%'不會給我一個結果,而WHERE「name」ILIKE'Nome \%test \\\\%'(刪除斜線,在該行中存在)按預期工作。 – Kknd 2008-10-13 15:30:13