在mysql表中找到非ascii空格

时间:2013-08-29 13:54:39

标签: mysql

我有一个大型数据库,其中Trim和我用来计算单词的函数并不总是有用(有些记录仍然有'空格'而多字字段的计数为1)。让我相信我有非ascii空间。

我试图找到违规记录:

SELECT * FROM TABLE WHERE FIELD NOT REGEXP '[A-Za-z0-9 ;,]'

换句话说,我使用的所有字母,数字,字符和空格。

返回零集。

有没有更好的方法(即有效的方法)?

1 个答案:

答案 0 :(得分:0)

您的正则表达式将匹配集{A-Za-z0-9,空格,分号,冒号}中包含一个或多个字符的行。

最好使用POSIX [:cntrl:]字符类专门查找不可打印的字符:

SELECT * FROM TABLE WHERE FIELD REGEXP '[[:cntrl:]]'