mysql報(bào)錯(cuò)1267?-?Illegal?mix?of?collations問(wèn)題的解決方法
我輸入下面代碼
SELECT
*
FROM
po_pomainviewt
WHERE cInvName IN (
SELECT SUBSTRING_INDEX(FileName, '.', 1)
FROM fileinfo
);
錯(cuò)誤
報(bào)錯(cuò)1267 - Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_german2_ci,IMPLICIT) for operation '='
這個(gè)錯(cuò)誤是由于在執(zhí)行查詢(xún)時(shí),兩個(gè)表的字符集排序規(guī)則(collation)不一致。你可以通過(guò)以下幾種方式來(lái)解決這個(gè)問(wèn)題:
1. 使用 COLLATE 指定相同的排序規(guī)則
你可以在查詢(xún)中明確指定 COLLATE,讓兩邊的排序規(guī)則一致。例如:
SELECT *
FROM po_pomainviewt
WHERE cInvName COLLATE utf8mb4_german2_ci IN (
SELECT SUBSTRING_INDEX(FileName, '.', 1) COLLATE utf8mb4_german2_ci
FROM fileinfo
);
在這個(gè)例子中,我使用了 utf8mb4_german2_ci 排序規(guī)則。你也可以根據(jù)需要將其更改為其他適合你的排序規(guī)則。
2. 修改表的排序規(guī)則
你可以修改表的排序規(guī)則,使其在整個(gè)表中保持一致:
ALTER TABLE po_pomainviewt CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci; ALTER TABLE fileinfo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci;
3. 統(tǒng)一數(shù)據(jù)庫(kù)的排序規(guī)則
你也可以修改數(shù)據(jù)庫(kù)的排序規(guī)則,讓所有新表使用相同的排序規(guī)則:
ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci;
這個(gè)方法直接比較字符的二進(jìn)制值,不受排序規(guī)則影響。
選擇最適合你當(dāng)前情況的方法進(jìn)行處理。
總結(jié)
到此這篇關(guān)于mysql報(bào)錯(cuò)1267 - Illegal mix of collations問(wèn)題解決方法的文章就介紹到這了,更多相關(guān)mysql報(bào)錯(cuò)1267 Illegal mix of collations內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql大數(shù)據(jù)查詢(xún)優(yōu)化經(jīng)驗(yàn)分享(推薦)
這篇文章主要介紹了mysql大數(shù)據(jù)查詢(xún)優(yōu)化經(jīng)驗(yàn)分享,真的是正兒八經(jīng)的mysql優(yōu)化技巧,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03
MySQL服務(wù)器線(xiàn)程數(shù)的查看方法詳解
這篇文章主要介紹了MySQL服務(wù)器線(xiàn)程數(shù)的查看方法,結(jié)合實(shí)例形式分析了mysql線(xiàn)程數(shù)查看的相關(guān)命令、配置、參數(shù)及相關(guān)使用技巧,需要的朋友可以參考下2018-03-03
MySQL提示表不存在的解決error:1146:Tabledoesn'texist(最新推薦)
在使用MySQL的過(guò)程中,有時(shí)會(huì)遇到“Table?doesn't?exist”(表不存在)的錯(cuò)誤,錯(cuò)誤代碼通常為1146,這個(gè)問(wèn)題可能由多種原因引起,本文將幫助你診斷和解決這個(gè)問(wèn)題,感興趣的朋友一起看看吧2025-07-07
mysql數(shù)據(jù)庫(kù)表增添字段,刪除字段,修改字段的排列等操作
這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)表增添字段,刪除字段,修改字段的排列等操作,修改表指的是修改數(shù)據(jù)庫(kù)之后中已經(jīng)存在的數(shù)據(jù)表的結(jié)構(gòu)2022-07-07
mysql使用mysqld_multi部署單機(jī)多實(shí)例的方法教程
這篇文章主要給大家介紹了關(guān)于mysql使用mysqld_multi部署單機(jī)多實(shí)例的相關(guān)資料,文中通過(guò)示例代碼將實(shí)現(xiàn)的步驟一步步介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03

