3

utf8-general-ci 多くの値に ASCII 以外の文字が含まれるエンコーディングのフィールドがあります。したい

  1. ASCII 以外の文字を含むすべてのフィールドを検索します

  2. すべての非 ASCII 文字を対応するASCII バージョンに置き換えます。

例: コートジボワールはコートジボワール、サントメはサントメなどに置き換えます。

どうすればこれを達成できますか? フィールド タイプを ascii に変更すると、非 ascii 文字が「?」に置き換えられます。を使用してそのようなすべてのフィールドを検索することさえできません

RLIKE '%[^a-z]%'

例えば

SELECT columname 
FROM tablename 
WHERE NOT columname REGEXP '[a-z]';

空集合を返します。

ありがとう

4

3 に答える 3

3

SQLフィドルの例は

http://www.sqlfiddle.com/#!2/c1d90/1/0

選択するクエリは

select * from test where maintext rlike  '[^\x00-\x7F]'

お役に立てれば

于 2013-08-22T04:40:22.537 に答える
1

以前の質問から、PHP を使用していると思われます。

https://github.com/silverstripe-labs/silverstripe-unidecode

次に、skvの回答を使用して、使用したいオブジェクトを返し、unidecode を使用して、オブジェクトを同等の ASCII に変換しようとすることができます。

于 2013-11-04T14:27:27.627 に答える