在 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) = '';
我有下一个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
的 DDLCREATE 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) = '';