ホームページ > バックエンド開発 > PHPチュートリアル > mysqlで絵文字を検索するにはどうすればよいですか?

mysqlで絵文字を検索するにはどうすればよいですか?

WBOY
リリース: 2016-06-23 13:50:16
オリジナル
1410 人が閲覧しました

Mysql は utf8mb4 文字セットをサポートしています。つまり、絵文字の保存がすでにサポートされています。
選択する場所の条件として絵文字を使用したいのですが、可能ですか?それを達成するにはどうすればよいでしょうか?


ディスカッションに返信(解決策)

エディターで入力できる限り、クエリと他の文字に違いはありません

mysqlで検索するにはchrome + phpmyadminを使用します:
select * from `table` where `ニックネーム` like Convert(_utf8 '%

落ち込んでいます。絵文字を送信しましたが、傍受されました。代わりにフォーラムでサポートされている絵文字を使用します。

Chrome + phpmyadmin を使用しますmysql で検索するには:
select * from `table` where ` Nickname` like Convert(_utf8 '%%' USING utf8mb4) COLLATE utf8mb4_general_ci
結果は空ですが、ニックネームにこの絵文字が含まれるレコードが確実に存在します

デバイス。手元にある絵文字は絵文字をサポートしていないため、正確な表現はできません
ただし、原則は次のようになります。
フィールドが utf8mb4_general_ci の場合、フィールド内の絵文字は 4 バイトの utf-8 で存在します
可能であれば絵文字を文字列に入力すると、クエリ ステートメントは
select * from `table` where `nickname` like '%$txt%' になります

絵文字を指定したいが入力できない場合は、16 進数の内部コードを使用できますたとえば、
$ch = "xf0x9fx98x84";

絵文字比較テーブルがない場合は、絵文字をサポートするデバイスでそれを検出するための小さなプログラムを作成します。 Chrome には絵文字を入力するための拡張機能がインストールされており、比較テーブルもあります。select * from `table` where `nickname` like '%xf0%'; も試してみましたが、結果はまだ空です。理由はわかります
奇妙なのは、phpmyadmin は 4 バイトの絵文字を見て、ライブラリから直接エコーを読み込むと、3 バイトの絵文字が正常に表示されることです。 mysql がすでに 4 バイトの絵文字をサポートしていることを証明しています。 つまり、疑問符は phpmyadmin のためだけです

phpmyadmin 4 バイトの絵文字が疑問符であるのは正常です

フィールドは utf8mb4 ですが、phpmaiadmin は utf- です。 8. エンコーディングを変換できない場合は、当然疑問符になります
テキスト モードでは xf0 が単独で存在しないため、ニックネームは BINARY であることを宣言する必要があります。ニックネーム like '%xf0%'

select * from `table` where BINARY `nickname` like '%xf0 %'
; 。 。

select * from `table` where BINARY `nickname` like '%whole emoji%'
以上です、xu の熱心なサポートに感謝します

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート