最近在使用mysql 5.6版本時遇到了一個問題,就是有些數據查不到,尤其是在使用like和regexp查詢時。
經過排查,發現是因為mysql 5.6版本默認使用的是utf8編碼,而有些字符在這種編碼下無法正確存儲和查詢。比如,一些表情符號、Emoji表情等,就會出現問題。
解決這個問題,最簡單的方法就是將數據庫中的編碼方式改為utf8mb4,它支持更廣泛的字符集,包括Emoji表情。
ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
以上兩行代碼分別用于修改數據庫和表的編碼方式。修改后再次查詢,就可以正常查到數據了。
需要注意的是,在修改編碼方式前要備份好數據,避免數據丟失。另外,如果系統中有使用到索引,請先刪除索引再修改編碼方式。
總之,遇到mysql 5.6版本有數據查不到的情況,可以嘗試將數據庫和表的編碼方式修改為utf8mb4。