Mysql 字符集不一致導致連表異常的解決

 更新時間:2021年09月10日 08:44:47   作者:一灰灰  
做一個簡單的如下的連表查詢,居然直接提示錯誤,居然是字符集不一致的問題,本文記錄一下mysql的字符集類型,感興趣的可以了解一下

做一個簡單的如下的連表查詢,居然直接提示錯誤,居然是字符集不一致的問題,本文記錄一下mysql的字符集類型,以及下面這個問題的解決方案

select a.id, b.id from tt as a, t2 as b where a.xx = b.xx

-- Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='

1. 解決方法

先來看上面這個問題的解決方法,最容易想到的就是統一兩張表的字符集,要么都是utf8mb4_general_ci,要么就都是utf8mb4_unicode_ci,統一一下這個問題就自然解決了
如果我不想修改表的字符集呢?畢竟生產環境下,做這種操作還是有風險的,下面是一種不太優雅的解決方法

在字段后面指定字符集(可以全部都指定為utf8mb4_general_ci 當然也可以全部指定為 utf8mb4_unicode_ci, 根據實際需要進行處理即可)

select a.id, b.id from tt as a, t2 as b where a.xx = b.xx collate utf8mb4_general_ci

2. mysql字符集

字符集

對于國內的小伙伴,一般而言我們常見的字符集有下面三種

  • gbk: 兩字節
  • utf8: 三個字節
  • utf8mb4: 四個字節

而mysql實際支持的就比較多了,可以通過show charset;進行查詢

校驗規則

在實際的case中,經常會看到下面幾種

  • utf8_bin
  • utf8mb4_unicode_ci
  • utf8mb4_general_ci
  • latin1_general_cs

當然我們也可以通過 show collation;查看所支持的校驗規則

請注意上面的寫法

  • ci: case insensitive的縮寫 大小寫不敏感
  • cs: case sensitive 大小寫敏感
  • bin: 二進制存儲,大小寫敏感

到此這篇關于Mysql 字符集不一致導致連表異常的解決的文章就介紹到這了,更多相關Mysql 字符集連表異常內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Mysql排序獲取排名的實例代碼

    Mysql排序獲取排名的實例代碼

    這篇文章通過實例代碼給大家介紹了mysql排序獲取排名的相關知識,感興趣的朋友一起看看吧
    2018-05-05
  • SQL group by去重復且按照其他字段排序的操作

    SQL group by去重復且按照其他字段排序的操作

    這篇文章主要介紹了SQL group by去重復且按照其他字段排序的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • MySQL之遞歸小問題

    MySQL之遞歸小問題

    這篇文章主要介紹了MySQL之遞歸小問題,需要的朋友可以參考下
    2017-05-05
  • mysql 5.7.14 下載安裝、配置與使用詳細教程

    mysql 5.7.14 下載安裝、配置與使用詳細教程

    這篇文章主要介紹了mysql 5.7.14 下載安裝、配置與使用詳細教程的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • MySQL多線程復制遇到Error_code: 1872的解決方案

    MySQL多線程復制遇到Error_code: 1872的解決方案

    本文給大家分享的是在使用mysql主從復制的時候遇到Error_code: 1872錯誤的解決方法,非常的簡單,有需要的小伙伴可以參考下
    2016-09-09
  • Mysql慢查詢優化方法及優化原則

    Mysql慢查詢優化方法及優化原則

    這篇文章主要介紹了Mysql慢查詢優化方法及優化原則,本文給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-05-05
  • 游戲和服備忘問題簡析

    游戲和服備忘問題簡析

    這篇文章主要介紹了游戲和服備忘問題簡析,小編覺得挺不錯的,這里分享給大家,希望給大家一個參考。
    2017-10-10
  • 這種sql寫法真的會導致索引失效嗎

    這種sql寫法真的會導致索引失效嗎

    這篇文章主要給大家介紹了關于網上流傳的某種sql寫法會導致索引失效的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用sql具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • php后臺經常提示無法連接mysql 刷新后又可以訪問的解決方法

    php后臺經常提示無法連接mysql 刷新后又可以訪問的解決方法

    這幾天有一臺MySQL數據庫服務器出現了頻繁的掉線情況,通過排查,并沒有排查出哪個網站被攻擊,百思不得其解中的時候,群里有個朋友說是因為微軟KB967723造成的,網上搜索了一下,果然很多人都是這樣的問題,都是windows系統下安裝的MySQL造成的
    2011-05-05
  • 修改MYSQL最大連接數的3種方法分享

    修改MYSQL最大連接數的3種方法分享

    MYSQL數據庫安裝完成后,默認最大連接數是100,一般流量稍微大一點的論壇或網站這個連接數是遠遠不夠的,增加默認MYSQL連接數的方法有好幾個,這里簡單分享下
    2011-05-05

最新評論

精品国内自产拍在线观看