2009-01-20 58 views
2

如何评估列中是否包含mysql中的任何非ascii字符?在这种情况下,字符集实际上是latin1,所以我只是在寻找高字节的字符。在列中查找非ascii值的行

我尝试这样做:

select * from company where ticker regexp concat('[', x'7f', '-', x'ff', ']') 

但这返回此错误:

ERROR 1139(42000):从正则表达式得到错误 '无效字符范围'

回答

9

必须有一个更简单的方法要做到这一点,但我认为所有典型的逃跑都行得通,没有。所以这里是一个丑陋的解决方案:

select * from company 
where ticker regexp(concat('[',char(128),'-',char(255),']'));