mysql報錯1267?-?Illegal?mix?of?collations問題的解決方法
我輸入下面代碼
SELECT
*
FROM
po_pomainviewt
WHERE cInvName IN (
SELECT SUBSTRING_INDEX(FileName, '.', 1)
FROM fileinfo
);
錯誤
報錯1267 - Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_german2_ci,IMPLICIT) for operation '='
這個錯誤是由于在執(zhí)行查詢時,兩個表的字符集排序規(guī)則(collation)不一致。你可以通過以下幾種方式來解決這個問題:
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
);
在這個例子中,我使用了 utf8mb4_german2_ci 排序規(guī)則。你也可以根據(jù)需要將其更改為其他適合你的排序規(guī)則。
2. 修改表的排序規(guī)則
你可以修改表的排序規(guī)則,使其在整個表中保持一致:
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ù)庫的排序規(guī)則
你也可以修改數(shù)據(jù)庫的排序規(guī)則,讓所有新表使用相同的排序規(guī)則:
ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci;
這個方法直接比較字符的二進制值,不受排序規(guī)則影響。
選擇最適合你當(dāng)前情況的方法進行處理。
總結(jié)
到此這篇關(guān)于mysql報錯1267 - Illegal mix of collations問題解決方法的文章就介紹到這了,更多相關(guān)mysql報錯1267 Illegal mix of collations內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MYSQL不能從遠程連接的一個解決方法(s not allowed to connect to this MySQL s
MYSQL不能從遠程連接的一個解決方法(s not allowed to connect to this MySQL server)2011-08-08
DDL數(shù)據(jù)庫與表的創(chuàng)建和管理深入講解使用教程
這篇文章主要介紹了DDL數(shù)據(jù)庫與表的創(chuàng)建和管理,系統(tǒng)架構(gòu)的層面來看,數(shù)據(jù)庫從大到小依次是數(shù)據(jù)庫服務(wù)器(上面安裝了DBMS和數(shù)據(jù)庫)、數(shù)據(jù)庫(也稱database或者schema)、數(shù)據(jù)表、數(shù)據(jù)表的行與列2023-04-04
Mysql分組查詢每組最新一條數(shù)據(jù)的三種實現(xiàn)方法
我們在開發(fā)中經(jīng)常會遇到分組查詢最新數(shù)據(jù)的問題,下面這篇文章主要給大家介紹了關(guān)于Mysql分組查詢每組最新一條數(shù)據(jù)的三種實現(xiàn)方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-01-01
MySQL GRANT用戶授權(quán)的實現(xiàn)
授權(quán)就是為某個用戶賦予某些權(quán)限。MySQL 提供了 GRANT 語句來為用戶設(shè)置權(quán)限。具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-06-06
MySQL高級特性——數(shù)據(jù)表分區(qū)的概念及機制詳解
當(dāng)數(shù)據(jù)表過大時,通過普通的查詢優(yōu)化技巧已經(jīng)無法大幅度提升性能,此時往往需要進行分區(qū)分表優(yōu)化。分區(qū)其實是將一張邏輯上統(tǒng)一的表在物理上劃分成了多張表。分區(qū)操作對使用者而言是一個黑盒操作,但是如果你從文件系統(tǒng)上看,就會看到分區(qū)數(shù)據(jù)表的實際存儲方式是分開的。2021-05-05
關(guān)于MYSQL中每個用戶取1條記錄的三種寫法(group by xxx)
本篇文章是對MYSQL中每個用戶取1條記錄的三種寫法進行了詳細的分析介紹,需要的朋友參考下2013-07-07
MySQL事務(wù)的基礎(chǔ)學(xué)習(xí)以及心得分享
本篇內(nèi)容是關(guān)于MySQL事務(wù)的基礎(chǔ)知識學(xué)習(xí)內(nèi)容,并把學(xué)習(xí)中網(wǎng)友的心得做了總結(jié),分享給大家,一起學(xué)習(xí)參考下吧。2017-12-12

