sql >> データベース >  >> RDS >> Mysql

MySQLは「=」でUTF-8文字列を選択しますが、「LIKE」では選択しません

    マーカス・アダムスの答えを見た後、彼はこの関数について言及していませんでしたが、REPLACE関数がこの問題の解決策になる可能性があることに気付きました。

    私は2つの異なる結合文字(acuteとtilde)しか持っていないので、他のASCII文字と組み合わせます。たとえば、jはtilde、jはacute、mはtilde、sはtildeなどです。 LIKEを使用する場合は、これら2つの文字を置き換える必要があります。

    マニュアルを検索した後、結合文字だけをクエリで適切に表現して削除するのに役立つUNHEX関数について学びました。

    結合するチルダはCC83で表されます。 HEXコードでは、急性はCC81で表されます。 HEXで。

    だから、私の問題を解決するクエリはこれです。

    SELECT word, REPLACE(REPLACE(word, UNHEX("CC83"), ""), UNHEX("CC81"), "")
    FROM oldword WHERE REPLACE(REPLACE(word, UNHEX("CC83"), ""), UNHEX("CC81"), "") 
    LIKE 'hua%';`
    


    1. DjangoアプリをAWSElasticBeanstalkにデプロイする

    2. CodeIgniterとAJAXフォームの送信

    3. 空間インデックスを使用した null 許容 geography 列での SQL Server 2008 のパフォーマンス

    4. Rails3ログでpostgresログスパムをサイレンシング