我有一个大型数据库,其中诸如 Trim 之类的东西和我用来计算单词数的函数并不总是有效(某些记录仍然有“空格”,并且多单词字段的计数为 1)。让我相信我有非 ASCII 空格。
我尝试这样做来查找违规记录:
SELECT * FROM TABLE WHERE FIELD NOT REGEXP '[A-Za-z0-9 ;,]'
换句话说,我使用的所有字母、数字、字符和空格。
返回调零。
是否有更好的方法来做到这一点(即有效的方法)?
最佳答案
您的正则表达式将匹配包含 {A-Z
、a-z
、0-9
、空格、分号集合中的一个或多个字符的行,冒号}。
最好使用 POSIX [:cntrl:]
字符类专门查找不可打印的字符:
SELECT * FROM TABLE WHERE FIELD REGEXP '[[:cntrl:]]'
关于mysql - 在mysql表中查找非ascii空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18512946/