在 MySQL 数据库中搜索表情符号

Search MySQL DATABASE For Emojis

我有下一个table:

CREATE TABLE reactionroles (
    ID int(11) NOT NULL AUTO_INCREMENT,
    guild_id bigint(20) NOT NULL,
    message_id bigint(20) NOT NULL,
    Emoji text COLLATE utf8mb4_unicode_ci NOT NULL,
    Role bigint(20) NOT NULL,
    channel_id bigint(20) NOT NULL,
    PRIMARY KEY (ID) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO reactionroles VALUES (
    60, 358548815713665034, 700820147580960789, '',
    368811874223128587, 490828235953668096
);

我正在尝试 select 在 MySQL table 中使用特定表情符号排成一行。

为了展示我的问题我运行

SELECT * FROM `reactionroles` WHERE Emoji = '';

在phpmyadmin中SQL-查询。 我预计只会有一个结果,但它会打印出每一行,不管是什么表情符号。 SQL-Query

我已经将排序规则设置为

utf8mb4_unicode_ci

有人知道为什么会这样吗?

编辑:table

的 DDL
CREATE TABLE reactionroles ( 
  ID int(11) NOT NULL AUTO_INCREMENT, 
  guild_id bigint(20) NOT NULL, 
  message_id bigint(20) NOT NULL, 
  Emoji text COLLATE utf8mb4_unicode_ci NOT NULL, 
  Role bigint(20) NOT NULL, 
  channel_id bigint(20) NOT NULL, 
  PRIMARY KEY (ID) ) 
  ENGINE=InnoDB AUTO_INCREMENT=14 
  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

您创建了一个 table,其中 Emoji 列为 TEXT,因此您必须将 Emoji 转换为 BINARY:

SELECT * FROM `reactionroles` WHERE CAST(Emoji AS BINARY) =  '';