2009-01-20 52 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),']'));