2013-02-20 32 views
2

我在一張表中列有詳細信息。該欄以HTML格式存儲電子郵件內容。列數據類型是blob。我的搜索和查找任何電子郵件內容的要求包含非英文字符,即外語。如何在使用PHP的內容中查找外來字符?

該表有51000條記錄。在51000條記錄中,我需要過濾只有非英文字符的電子郵件。它可能是100或大於。一旦我過濾這些記錄,我將使用谷歌翻譯

+1

採取白名單的做法。找到包含可接受字符列表以外的內容。試圖列舉所有你認爲是「外國」的將是令人生畏的。可以在你的SQL中使用PCRE來獲取它。 – ficuscr 2013-02-20 18:28:10

+1

爲此,請使用正則表達式來查找與不可接受字符相匹配的值,並且必須對該正則表達式匹配的任何電子郵件執行操作。 – DiMono 2013-02-20 18:30:35

+0

正在擴大到你看到的那樣:很高興我們同意。 – ficuscr 2013-02-20 18:31:16

回答

0

MySQL手動識別語言,將是這樣的:

SELECT foo 
FROM bar 
WHERE somecolumn REGEXP '[^\x00-\x80]+' 

匹配不上在ASCII字符範圍內0-128。

也說不定:

WHERE NOT HEX(COLUMN) REGEXP '^([0-7][0-9A-F])*$';

REGEXP '[^[.NUL.]-[.DEL.]]'

REGEXP '[^ -~]'

您將需要調整模式以滿足您的需求。

圖還顯示了一種新方法: How can I find non-ASCII characters in MySQL?

WHERE columnToCheck <> CONVERT(columnToCheck USING ASCII)

相關問題