【发布时间】:2014-12-23 08:49:17
【问题描述】:
我正在寻找如何检查任何字段是否包含 TAB 字符。
阅读this post后,我尝试使用这个命令:
SELECT id FROM account WHERE description LIKE '%\t%';
但它会返回所有包含“t”字符的字段。
你有什么办法可以表示TAB字符吗?
【问题讨论】:
-
或者你可以使用十六进制值:0x09 :D...
标签: postgresql
我正在寻找如何检查任何字段是否包含 TAB 字符。
阅读this post后,我尝试使用这个命令:
SELECT id FROM account WHERE description LIKE '%\t%';
但它会返回所有包含“t”字符的字段。
你有什么办法可以表示TAB字符吗?
【问题讨论】:
标签: postgresql
在 SQL 中,没有像 \t 这样的字符“转义”。您可以为此使用chr() 函数:
select id
from account
where description LIKE '%'||chr(9)||'%'
在这种情况下我更喜欢strpos 函数,因为我认为它使意图更清晰
select id
from account
where strpos(description, chr(9)) > 0
【讨论】:
您必须使用文字制表符,
SELECT id FROM account WHERE description LIKE '% %';
在 psql 中键入 ctrl-V 然后 TAB 进入选项卡。在其他环境中,还有其他方法可以输入文字标签。
您也可以使用转义字符串语法:e'%\t%',或八进制转义 e'%\011%'。
【讨论】:
我参加这个聚会很晚,但今天研究了一下,我发现你也可以使用正则表达式。
SELECT id FROM account WHERE description ~ '\t';
【讨论】: