MySQL - Kommandos in der Größe limitiert?
Kalle_B
- datenbank
0 dedlfix
Hallöle,
bei Erweiterung eines großen SQL- Kommandos (MySQL 4) kommt überraschend diese Fehlermeldung:
1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Dvortag
,per4.tag_1 Dtag_1
,per4.tag_2 Dtag_2
,kon4.pr' at line 51
zu diesem Kommando:
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SELECT
1 slot_nr
,kon1.aussteller_id chef_id
,1586 aus2_id
,IF(kon1.prio_1 IS NULL , 0, kon1.prio_1)
+IF(kon1.prio_2 IS NULL , 0, kon1.prio_2*0.5)
+IF(kon2.prio_1 IS NULL , 0, kon2.prio_1)
+IF(kon2.prio_2 IS NULL , 0, kon2.prio_2*0.5)
+IF(kon3.prio_1 IS NULL , 0, kon3.prio_1)
+IF(kon3.prio_2 IS NULL , 0, kon3.prio_2*0.5)
+IF(kon4.prio_1 IS NULL , 0, kon4.prio_1)
+IF(kon4.prio_2 IS NULL , 0, kon4.prio_2*0.5)
+IF(kon1.prio_3 IS NULL , 0, kon1.prio_3*0.5) SUMprio_1
,kon1.gruppen_id gruppen_id
,kon1.besucher_id Abes_id
,kon2.besucher_id Bbes_id
,kon3.besucher_id Cbes_id
,kon4.besucher_id Dbes_id
,per1.anreise_vortag Avortag
,per1.tag_1 Atag_1
,per1.tag_2 Atag_2
,kon1.prio_1 Aprio_1
,kon1.prio_2 Aprio_2
,anw1.slot_nr Aanw_slot
,anw1.partner_id Aanw_par
,anw1.event_id Aanw_evt
,per2.anreise_vortag Bvortag
,per2.tag_1 Btag_1
,per2.tag_2 Btag_2
,kon2.prio_1 Bprio_1
,kon2.prio_2 Bprio_2
,anw2.slot_nr Banw_slot
,anw2.partner_id Banw_par
,anw2.event_id Banw_evt
,per3.anreise_vortag Cvortag
,per3.tag_1 Ctag_1
,per3.tag_2 Ctag_2
,kon3.prio_1 Cprio_1
,kon3.prio_2 Cprio_2
,anw3.slot_nr Canw_slot
,anw3.partner_id Canw_par
,anw3.event_id Canw_evt
,per4 anreise_vortag Dvortag
,per4.tag_1 Dtag_1
,per4.tag_2 Dtag_2
,kon4.prio_1 Dprio_1
,kon4.prio_2 Dprio_2
,anw4.slot_nr Danw_slot
,anw4.partner_id Danw_par
,anw4.event_id Danw_evt
FROM tm_kontakte as kon1
LEFT JOIN tm_anwesenheit as anw1
ON anw1.adr_id =kon1.besucher_id
AND anw1.slot_nr=1
AND anw1.partner_id=0
AND anw1.event_id =0
LEFT JOIN tm_adressen as per1
ON per1.id=kon1.besucher_id
LEFT JOIN tm_kontakte as kon2
ON kon2.aussteller_id = kon1.aussteller_id
AND (kon2.prio_1 = 1 OR kon2.prio_2 = 1)
AND kon2.besucher_id != kon1.besucher_id
AND kon2.gruppen_id > 0
AND kon2.gruppen_id = kon1.gruppen_id
LEFT JOIN tm_anwesenheit as anw2
ON anw2.adr_id =kon2.besucher_id
AND anw2.slot_nr=anw1.slot_nr
AND anw2.partner_id=0
AND anw2.event_id =0
LEFT JOIN tm_adressen as per2
ON per2.id=kon2.besucher_id
LEFT JOIN tm_kontakte as kon3
ON kon3.aussteller_id = kon1.aussteller_id
AND (kon3.prio_1 = 1 OR kon3.prio_2 = 1)
AND kon3.besucher_id != kon1.besucher_id
AND kon3.besucher_id != kon2.besucher_id
AND kon3.gruppen_id > 0
AND kon3.gruppen_id = kon1.gruppen_id
LEFT JOIN tm_anwesenheit as anw3
ON anw3.adr_id =kon3.besucher_id
AND anw3.slot_nr=anw1.slot_nr
AND anw3.partner_id=0
AND anw3.event_id =0
LEFT JOIN tm_adressen as per3
ON per3.id=kon3.besucher_id
LEFT JOIN tm_kontakte as kon4
ON kon4.aussteller_id = kon1.aussteller_id
AND (kon4.prio_1 = 1 OR kon4.prio_2 = 1)
AND kon4.besucher_id != kon1.besucher_id
AND kon4.besucher_id != kon2.besucher_id
AND kon4.besucher_id != kon3.besucher_id
AND kon4.gruppen_id > 0
AND kon4.gruppen_id = kon1.gruppen_id
LEFT JOIN tm_anwesenheit as anw4
ON anw4.adr_id =kon4.besucher_id
AND anw4.slot_nr=anw1.slot_nr
AND anw4.partner_id=0
AND anw4.event_id =0
LEFT JOIN tm_adressen as per4
ON per4.id=kon4.besucher_id
WHERE kon1.aussteller_id = 1586
AND kon1.slot_nr = 0
AND (kon1.prio_1 = 1 OR kon1.prio_2 = 1)
HAVING Aanw_slot IS NOT NULL AND Avortag=1 AND (Bvortag=1 OR Bvortag IS NULL) AND (Cvortag=1 OR Cvortag IS NULL) AND (Dvortag=1 OR Dvortag IS NULL)
ORDER BY SUMprio_1 DESC, gruppen_id
LIMIT 0,1
Lieben Gruß, Kalle
echo $begrüßung;
bei Erweiterung eines großen SQL- Kommandos (MySQL 4) kommt überraschend diese Fehlermeldung:
1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Dvortag
Bei Syntax-Fehlern ist der Fehler immer vor der angemeckerten Stelle zu suchen.
,per4 anreise_vortag Dvortag
Nun mach aber mal 'n Punkt! Wie wäre es z.B. zwischen per4 und anreise_vortag?
echo "$verabschiedung $name";
echo $begrüßung;
Bei Syntax-Fehlern ist der Fehler immer vor der angemeckerten Stelle zu suchen.
,per4 anreise_vortag Dvortag
Nun mach aber mal 'n Punkt! Wie wäre es z.B. zwischen per4 und anreise_vortag?
Ja, manchmal wird man blind für Details. Danke dir.
Kalle