MySQL illegaler Mix von Kollatierungen, wenn alles gleich sortiert ist

Ich kann diese Abfrage in MySQL ausführen und es funktioniert einwandfrei. ABER ich muss eine LEFT-Funktion für ctd.FULL_DESCRIPTION (TEXT-Datentyp) ausführen und nur die ersten 3600 Zeichen verwenden. Wenn ich dies versuche (mit LEFT (ctd.FULL_DESCIPTION, 3600)), erhalte ich die Fehlermeldung: Illegale Mischung aus Kollatierungen (utf8_general_ci, IMPLICIT) und (latin1_swedish_ci, COERCIBLE) für die Operation 'UNION'

Alles, was ich zu diesem Fehler finden kann, deutet darauf hin, dass eine meiner Spalten nicht wie die anderen sortiert ist. Ich habe eine SHOW FULL COLUMNS für alle Tabellen in dieser Abfrage durchgeführt und alles, was zusammengestellt wurde, verwendet utf8_general_ci. Die Standardkollatierung der Datenbank lautet ebenfalls utf8. Ich kann nirgendwo finden, wo latin1_swedish_ci hinkommt. Was vermisse ich?

SELECT 
CONCAT(''73'',RIGHT(CONCAT(''000000'',cd.CHANGEID),6)) AS CHANGEID, 
LEFT(cd.TITLE,80) AS CHANGETITLE, FROM_UNIXTIME(cd.CREATEDTIME/1000) AS PRJDATE, 
LEFT(sd.NAME,10) AS STATUSNAME, wo.WORKORDERID AS WOID, LEFT(wo.TITLE,80) AS WOTITLE,
LEFT(au.FIRST_NAME,10) as TECHNAME, ctd.FULL_DESCRIPTION AS CHANGEDSC
FROM servicedesk.changedetails cd, servicedesk.incidenttochangemapping itcm, 
servicedesk.workorder wo, servicedesk.stagedefinition sd, servicedesk.workorderstates 
wos, servicedesk.sduser sdu, servicedesk.aaauser au, servicedesk.changetodescription ctd 
WHERE cd.CHANGEID = itcm.CHANGEID and itcm.WORKORDERID = wo.WORKORDERID and
cd.STAGEID = sd.STAGEID and wo.WORKORDERID = wos.WORKORDERID and wos.OWNERID = 
sdu.USERID and sdu.USERID = au.USER_ID and cd.CHANGEID = ctd.CHANGEID and
cd.STAGEID NOT IN (3,2) and cd.CATEGORYID IN 
(301,2701,3601,3602,3605,3606,4201,4202,4501,4502,4801) and wos.REQUESTTYPEID IN 
(301,601)
UNION
SELECT CONCAT(''73'',RIGHT(CONCAT(''000000'',cd.CHANGEID),6)) AS CHANGEID, 
LEFT(cd.TITLE,80) AS CHANGETITLE, FROM_UNIXTIME(cd.CREATEDTIME/1000) AS PRJDATE, 
LEFT(sd.NAME,10) AS STATUSNAME, '''' AS WOID, '''' AS WOTITLE, '''' AS TECHNAME, 
ctd.FULL_DESCRIPTION AS CHANGEDSC
FROM servicedesk.changedetails cd, servicedesk.stagedefinition sd,
servicedesk.changetodescription ctd
WHERE cd.STAGEID = sd.STAGEID and cd.CHANGEID = ctd.CHANGEID and cd.STAGEID NOT 
IN (3,2) and cd.CATEGORYID IN
(301,2701,3601,3602,3605,3606,4201,4202,4501,4502,4801) and NOT EXISTS (
SELECT NULL FROM servicedesk.incidenttochangemapping itcm WHERE cd.CHANGEID = 
itcm.CHANGEID)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage