在 MySQL 数据库中查找确切的单词
Find exact word in MySQL database
我想使用 MySQL 查询在特定列中找到提取词。这里是我的 table 名称 demo 和列名称“words”,其中包含值“அன்பே”。我想找到准确的“அன்பே”。
我使用了以下查询
create table demo(words nvarchar(200));
insert into demo values (N'அன்பே');
select * from demo where words=N'அன்பே';
select * from demo where words like N'அன்பே';
这两个 select 查询无法工作。
您必须使用正确的字符集(并且在比较时 - 正确的排序规则):
SHOW VARIABLES LIKE 'character_set_%';
SET character_set_client=utf8mb4;
SET character_set_connection=utf8mb4;
SET character_set_results=utf8mb4;
SHOW VARIABLES LIKE 'character_set_%';
Variable_name
Value
character_set_client
latin1
character_set_connection
latin1
character_set_database
latin1
character_set_filesystem
binary
character_set_results
latin1
character_set_server
latin1
character_set_system
utf8
character_sets_dir
/usr/share/mysql/charsets/
Variable_name
Value
character_set_client
utf8mb4
character_set_connection
utf8mb4
character_set_database
latin1
character_set_filesystem
binary
character_set_results
utf8mb4
character_set_server
latin1
character_set_system
utf8
character_sets_dir
/usr/share/mysql/charsets/
create table demo(words nvarchar(200) ) CHARACTER SET utf8mb4;
insert into demo values (_utf8mb4'அன்பே');
SELECT * FROM demo;
select * from demo where words='அன்பே';
select * from demo where words like 'அன்பே';
| words |
| :-------------- |
| அன்பே |
| words |
| :-------------- |
| அன்பே |
| words |
| :-------------- |
| அன்பே |
db<>fiddle here
我想使用 MySQL 查询在特定列中找到提取词。这里是我的 table 名称 demo 和列名称“words”,其中包含值“அன்பே”。我想找到准确的“அன்பே”。
我使用了以下查询
create table demo(words nvarchar(200));
insert into demo values (N'அன்பே');
select * from demo where words=N'அன்பே';
select * from demo where words like N'அன்பே';
这两个 select 查询无法工作。
您必须使用正确的字符集(并且在比较时 - 正确的排序规则):
SHOW VARIABLES LIKE 'character_set_%'; SET character_set_client=utf8mb4; SET character_set_connection=utf8mb4; SET character_set_results=utf8mb4; SHOW VARIABLES LIKE 'character_set_%';
Variable_name Value character_set_client latin1 character_set_connection latin1 character_set_database latin1 character_set_filesystem binary character_set_results latin1 character_set_server latin1 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/
Variable_name Value character_set_client utf8mb4 character_set_connection utf8mb4 character_set_database latin1 character_set_filesystem binary character_set_results utf8mb4 character_set_server latin1 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/
create table demo(words nvarchar(200) ) CHARACTER SET utf8mb4; insert into demo values (_utf8mb4'அன்பே'); SELECT * FROM demo; select * from demo where words='அன்பே'; select * from demo where words like 'அன்பே';
| words | | :-------------- | | அன்பே | | words | | :-------------- | | அன்பே | | words | | :-------------- | | அன்பே |
db<>fiddle here