【发布时间】:2017-05-08 12:48:45
【问题描述】:
有时我在我的数据库中得到 Ÿ(十六进制 C5B8:2 个字节,1 个字符),并且我有一个脚本可以处理多个无法读取该数据的数据,因为它不知道如何处理它所以它停止整个过程,我必须进入我的日志并查看错误在哪里,以便我可以重新启动整个过程。
我想执行一个查询,只给我不属于英文字母的字符,以便我可以查看是否应该更改它们。
我试图只寻找 UTF8 字符,但 Ÿ 是一个 UTF8 字符,所以我需要寻找另一种方法。
包含以下以外的单词:
A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z
和数字
0-1-2-3-4-5-6-7-8-9
不包括字母数字(以防有人写这样的地址)
h3ll0
我在想这样的事情:
SELECT * FROM myTable WHERE myCol != (/^[A-Za-z]+$/)
类似的东西,我只得到不属于英文字母或数字 0-9 的字符的列
【问题讨论】:
-
试试
WHERE myCol NOT REGEXP '^[a-z0-9]*$'或WHERE myCol NOT REGEXP BINARY '^[a-zA-Z0-9]*$'。 -
@WiktorStribiżew 令牌 REGEXP 无效。有效令牌:LIKE BETWEEN。
-
@learningbyexample,您的问题被标记为“mysql”,因此我们假设您使用的是 MySQL,并且 REGEXP 是 MySQL 中的有效谓词。如果您使用不同的 SQL 数据库,请适当地编辑您的问题的标签。不同的 SQL 数据库使用正则表达式的语法不同。