gpt4 book ai didi

database - 在 ILIKE 查询中转义

转载 作者:行者123 更新时间:2023-11-29 14:24:46 26 4
gpt4 key购买 nike

我需要做一个查询来搜索以 'Nome % teste\/' 作为前缀的文本。我正在使用以下方法进行查询:

where "name"ILIKE 'Nome a% teste\/%' ESCAPE 'a'(使用 a 作为转义字符)。

有一行与此匹配,但此查询未返回任何内容。删除斜杠('Nome % teste\'),它起作用了。但我不明白为什么 slash 是个问题,因为默认转义符是 backslash 并且我已将其更改为 'a' 在这个测试中。

有什么我想念的吗? (我咨询过TFM)

最佳答案

使用“ESCAPE”说明符

WHERE "name" ILIKE 'Nome ~% teste \\/' ESCAPE '~' 

http://www.postgresql.org/docs/8.2/static/functions-matching.html

注意:您仍然需要为字符串解析器设置两次\。

如果没有 ESCAPE 你需要做的

WHERE "name" ILIKE 'Nome \% test \\\\/' 

( 4\'s 代表一个文字\)


Thanks, but I still have the original issue with the slash. Searching with

WHERE "name" ILIKE 'Nome \% test \\\\/%' 

don't give me a result, while

WHERE "name" ILIKE 'Nome \% test \\\\%' 

(removed the slash, that is present in the row) works as expected. – Kknd

您的字符串可能没有您指定的文字“/”。您之间可能有空字符或其他空白字符。或者,您可能/在不同的字符集中。

我会尝试用它来测试可能出现的情况

 WHERE "name" ILIKE 'Nome \% ' AND "name" ~* '\\.{1,10}/' 

这将返回由某些东西分隔的行(但不返回没有分隔的行)

关于database - 在 ILIKE 查询中转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/196626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com