0

我有一个大型数据库,其中诸如 Trim 之类的东西和我用来计算单词的函数并不总是有效(一些记录仍然有“空格”并且多单词字段的计数为 1)。让我相信我有非 ASCII 空间。

我试过这个来查找违规记录:

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

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

返回零集。

有没有更好的方法来做到这一点(即一种有效的方法)?

4

1 回答 1

0

A-Z您的正则表达式将匹配在集合 { , a-z, 0-9, 空格, 分号, 冒号}中有一个或多个字符的行。

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

SELECT * FROM TABLE WHERE FIELD REGEXP '[[:cntrl:]]'
于 2013-08-29T14:06:33.923 回答