2009-09-04 2 views
0

私は、mysqlテーブルでue ou ueを見つけ出す必要があります。mysqlでアクセント化されたcharを検索する

最初に試したもの: SELECT "Lél" like "%é%"; これは動作しません:eまたはéまたはèを含む単語を返します。

私も(文字Lを使用して)結果なしで正規表現を試してみました:なしドキュメントでmentionnedとして

SELECT "Lbc" REGEXP ".*L.*"; -- works : it finds L in the string LBC 

SELECT "Lbc" REGEXP ".*\u4C.*"; -- doesn't work : can't find the hexadecimal equivalent of L in the string LBC. 

私は\ uはプラス進検索をテストしたかった...私はまた、二重エスケープてみました変更。

正規表現の検索は、mysqlでは実際に制限されているようです。 http://dev.mysql.com/doc/refman/4.1/en/regexp.htmlに関連するドキュメントが見つかりませんでした。

私はmysql 4.1を使用しています。

4に存在しないmysql 5の解決策がある場合は、それについて知りたいと思います。あまりにも、4.1で動作するはずです -

+0

なぜ16進コードの代わりに実際の文字を送信できないのですか? – longneck

+0

さて、私は気を失うでしょう...それは私が試みた最初のことです...しかし、今私はあなたのコメントを読んだ後にもう一度試してみました...それは動作します。 –

+0

そのコメントを答えに変えてやりましょう。 –

答えて

1
SELECT 'LéL' LIKE '%é%' COLLATE utf8_bin; 
/* latin1_bin if your data is in latin1, etc. */ 
1 

SELECT 'LéL' LIKE '%e%' COLLATE utf8_bin; 
0 

http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_likeとMySQL 5.1でテスト

http://dev.mysql.com/doc/refman/5.0/en/charset-binary-collations.htmlを参照してください。

+0

+1は良い答えですが、Longneckは簡単な解決法を持っています。 (彼が回答としてコメントを投稿するのを待つ) –

+0

....あまりにも悪い。私はあなたの解決策を受け入れます。 –

関連する問題