mySQL - Abfrage funktioniert nur auf lokalem PC

tombe

Erfahrenes Mitglied
Hallo,
ich habe folgende Abfrage mit der unser Maschinenpark durchsucht werden soll.

SQL:
SELECT m.nummer, m.seriennummer, m.baujahr, m.betriebsstunden, m.bezeichnung, GROUP_CONCAT(t.text ORDER BY t.zeile SEPARATOR '<br>') AS zusatz
FROM maschine AS m
LEFT JOIN textzeile AS t USING (nummer)
WHERE m.baujahr BETWEEN 1900 AND 2900
GROUP BY(m.nummer)
HAVING UPPER(CONCAT(bezeichnung, zusatz)) LIKE '%KRAN%'
ORDER BY CAST(m.nummer AS UNSIGNED)

Angesprochen wird a) die Tabelle "maschinen" hier sind die Stammdaten wie z.B. Maschinenbezeichnung, Baujahr, Betriebsstunden enthalten und b) die Tabelle "textzeilen". In dieser Tabelle können n-Einträge mit zusätzlicher Beschreibung zur jew. Maschine vorhanden sein. Bei der Suche soll nun in beiden Tabellen nach dem eingegebenen Begriff gesucht werden.

Das komische ist das diese Abfrage bei mir lokal super funktioniert, wenn ich genau die gleiche Abfrage online mache, erhalte ich kein Ergebnis ganz egal wie und wonach ich suche.

Wie kann ich herausfinden wo da der Fehler liegt?
 
Finde auch grad nix falsches.
Darum die doofen Fragen

item: Sind es die gleichen Versionen von MySQL?

item: SInd auf dem Server dieselben Daten?
 
Hallo Yaslaw,

die Daten sind absolut identisch. Dachte zuerst auch das es daran liegt und habe deshalb beide Datenbanken mit den neuensten Daten bestückt.

Bei mir lokal läuft PHP Version 5.3.8 zusammen mit mySQL 5.5.16 und online ist es PHP Version 5.2.9 und 4.14.4.

Die gestrigen Versuche haben mich in Richtung "HAVING" geführt. Irgendwie habe ich das Gefühl als ob es damit was zu tun hat. Doch selbst die Version 4.14.4 sollte das doch schon kennen!?

Gruß Thomas
 
Kennt 4.14.4 das 'USING (nummer)' ?
Kannst du mal mit phpmayadmin auf dem Server testenund die Fehlermeldung posten?
 
Die Abfrage läuft ohne Probleme, ohne Fehlermeldung und ohne Ergebnis!

Ich poste mal eine Kopie des Bildschirms.
 

Anhänge

  • sql.jpg
    sql.jpg
    201,7 KB · Aufrufe: 5
So nach tagelangem Testen habe ich so wie es aussieht auf die Ursache für das Problem gefunden.

Die ursprüngliche Abfrage hatte bei group_concat die einzelnen Einträge mit "<br>" getrennt:

SQL:
GROUP_CONCAT(t.text ORDER BY t.zeile SEPARATOR '<br>') AS zusatz

Da nun "zusatz" diesen Zeilenumbruch enthielt, wurde der HAVING Abschnitt der Abfrage nicht korrekt ausgeführt.

Die SQL-Anweisung sieht jetzt zum Beispiel so aus:

SQL:
SELECT m.nummer, m.seriennummer, m.baujahr, m.betriebsstunden, m.bezeichnung, GROUP_CONCAT(t.text ORDER BY t.zeile SEPARATOR '<br>') AS zusatz
FROM maschine AS m
LEFT JOIN textzeile AS t USING (nummer)
WHERE m.baujahr BETWEEN 1900 AND 2900
GROUP BY(m.nummer)
HAVING CONCAT(bezeichnung, GROUP_CONCAT(t.text)) LIKE '%kran%'
ORDER BY CAST(m.nummer AS UNSIGNED)

Alle bisher durchgeführten Abfragen lieferten online und lokal immer die gleichen Ergebnisse.

Das Thema wäre somit eigentlich erledigt.
Falls aber jemand eine Erklärung dafür hat warum ein HTML-Tag solche Probleme verursacht, dann würde mich das schon noch interessieren.
 
Zurück