我正在搜索如何检查是否有任何字段包含TAB字符。
阅读this post后,我尝试使用此命令:
SELECT id FROM account WHERE description LIKE '%\t%';
但是它会返回包含&t; t'的所有字段。字符。
您是否有任何解决方案来代表TAB角色?
答案 0 :(得分:13)
在SQL中没有"转义"像\t
这样的字符。您可以使用chr()
函数:
select id
from account
where description LIKE '%'||chr(9)||'%'
在这种情况下,我更喜欢strpos
函数,因为我认为它使意图更清晰
select id
from account
where strpos(description, chr(9)) > 0
答案 1 :(得分:2)
你必须使用文字标签chacater,
SELECT id FROM account WHERE description LIKE '% %';
在psql中输入ctrl-V然后选择TAB进入选项卡。在其他环境中,还有其他方法可以输入文字标签。
或者,您可以使用转义字符串语法:e'%\t%'
或八进制转义e'%\011%'
。
答案 2 :(得分:0)
我参加这个聚会很晚,但是今天看了一下,我发现您也可以使用正则表达式。
SELECT id FROM account WHERE description ~ '\t';