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í)行查詢時(shí),兩個(gè)表的字符集排序規(guī)則(collation)不一致。你可以通過(guò)以下幾種方式來(lái)解決這個(gè)問(wèn)題:
1. 使用 COLLATE 指定相同的排序規(guī)則
你可以在查詢中明確指定 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不能從遠(yuǎn)程連接的一個(gè)解決方法(s not allowed to connect to this MySQL s
MYSQL不能從遠(yuǎn)程連接的一個(gè)解決方法(s not allowed to connect to this MySQL server)2011-08-08DDL數(shù)據(jù)庫(kù)與表的創(chuàng)建和管理深入講解使用教程
這篇文章主要介紹了DDL數(shù)據(jù)庫(kù)與表的創(chuàng)建和管理,系統(tǒng)架構(gòu)的層面來(lái)看,數(shù)據(jù)庫(kù)從大到小依次是數(shù)據(jù)庫(kù)服務(wù)器(上面安裝了DBMS和數(shù)據(jù)庫(kù))、數(shù)據(jù)庫(kù)(也稱database或者schema)、數(shù)據(jù)表、數(shù)據(jù)表的行與列2023-04-04Mysql分組查詢每組最新一條數(shù)據(jù)的三種實(shí)現(xiàn)方法
我們?cè)陂_(kāi)發(fā)中經(jīng)常會(huì)遇到分組查詢最新數(shù)據(jù)的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Mysql分組查詢每組最新一條數(shù)據(jù)的三種實(shí)現(xiàn)方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01MySQL GRANT用戶授權(quán)的實(shí)現(xiàn)
授權(quán)就是為某個(gè)用戶賦予某些權(quán)限。MySQL 提供了 GRANT 語(yǔ)句來(lái)為用戶設(shè)置權(quán)限。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06MySQL高級(jí)特性——數(shù)據(jù)表分區(qū)的概念及機(jī)制詳解
當(dāng)數(shù)據(jù)表過(guò)大時(shí),通過(guò)普通的查詢優(yōu)化技巧已經(jīng)無(wú)法大幅度提升性能,此時(shí)往往需要進(jìn)行分區(qū)分表優(yōu)化。分區(qū)其實(shí)是將一張邏輯上統(tǒng)一的表在物理上劃分成了多張表。分區(qū)操作對(duì)使用者而言是一個(gè)黑盒操作,但是如果你從文件系統(tǒng)上看,就會(huì)看到分區(qū)數(shù)據(jù)表的實(shí)際存儲(chǔ)方式是分開(kāi)的。2021-05-05關(guān)于MYSQL中每個(gè)用戶取1條記錄的三種寫法(group by xxx)
本篇文章是對(duì)MYSQL中每個(gè)用戶取1條記錄的三種寫法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07MySQL事務(wù)的基礎(chǔ)學(xué)習(xí)以及心得分享
本篇內(nèi)容是關(guān)于MySQL事務(wù)的基礎(chǔ)知識(shí)學(xué)習(xí)內(nèi)容,并把學(xué)習(xí)中網(wǎng)友的心得做了總結(jié),分享給大家,一起學(xué)習(xí)參考下吧。2017-12-12