SELECT count(*)FROM表WHERE列ilike'%/%';
给我包含“/”的值的数量
如何为“\”做同样的事情?
SELECT count(*)
FROM table
WHERE column ILIKE '%\\\\%';
摘自docs:
请注意,反斜杠在字符串文字中已具有特殊含义,因此要编写包含反斜杠的模式常量,必须在SQL语句中编写两个反斜杠(假设使用了转义字符串语法,请参见第4.1.2.1节)。因此,编写实际匹配文字反斜杠的模式意味着在语句中写入四个反斜杠。您可以通过使用ESCAPE选择不同的转义字符来避免这种情况;那么反斜杠对于LIKE来说并不特别。 (但它对于字符串文字解析器仍然是特殊的,所以你仍然需要它们中的两个。)
更好 - 不要使用,只需使用标准位置:
select count(*) from from table where 0 < position( E'\\' in column );
你需要E'\\\\'
,因为LIKE
的参数是一个正则表达式,正则表达式转义字符已经是\
(例如~ E'\\w'
将匹配包含可打印字符的任何字符串)。
见doc