データベース、テーブル、フィールドはすべて utf8mb4 を使用しています。絵文字記号をいくつかのフィールドにうまく保存できます。今、私は次のようなクエリを試みます:
SELECT * FROM user
WHERE name=''
驚くべきことに、結果は「」などのフィールド名が異なるレコードです
mysql は絵文字文字列を長さで一致させますが、内容では一致させないようです。
その問題を解決するためのアイデアはありますか? どうもありがとう。
私のテーブルに次のコマンドを実行しました:
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
それで全部です。結果は正しいです。
これを試して:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
あなたのテーブルの照合順序は何ですか? utf8mb4 を使用しているため、utf8mb4_unicode_ci
. それ以外の場合は、見ている問題が発生する可能性があります。さらに悪いことに、複数のレコードが返されることさえあります。
照合順序を設定するには、次を使用します。
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;