我有一个大型数据库,其中Trim和我用来计算单词的函数并不总是有用(有些记录仍然有'空格'而多字字段的计数为1)。让我相信我有非ascii空间。
我试图找到违规记录:
SELECT * FROM TABLE WHERE FIELD NOT REGEXP '[A-Za-z0-9 ;,]'
换句话说,我使用的所有字母,数字,字符和空格。
返回零集。
有没有更好的方法(即有效的方法)?
答案 0 :(得分:0)
您的正则表达式将匹配集{A-Z
,a-z
,0-9
,空格,分号,冒号}中包含一个或多个字符的行。
最好使用POSIX [:cntrl:]
字符类专门查找不可打印的字符:
SELECT * FROM TABLE WHERE FIELD REGEXP '[[:cntrl:]]'