MySQL是一種很常用的關系型數據庫管理系統,但是在使用中我們可能會遇到無法查詢中文的問題。
在MySQL中,如果我們使用的是默認的字符集,那么我們查詢中文時就可能會遇到亂碼的情況。這是因為MySQL默認的字符集是Latin1,無法支持中文字符。
mysql>SHOW VARIABLES LIKE 'character%'; +--------------------------+------------------------+ | 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/ | +--------------------------+------------------------+ 8 rows in set (0.00 sec)
我們可以看到,即使我們在客戶端和連接時都使用了utf8mb4字符集,但是字符集仍然被設置為Latin1。
解決這個問題有兩種方法:
1. 修改MySQL默認字符集
我們可以修改MySQL的默認字符集為utf8mb4,并重啟MySQL服務:
[mysqld] character-set-server=utf8mb4
2. 手動指定字符集
我們可以在查詢中手動指定字符集為utf8mb4:
SELECT * FROM table_name WHERE column_name LIKE '%中文%' COLLATE utf8mb4_general_ci;
這樣就可以查詢到包含中文的數據了。