Hallo,
ich lasse in einem PHP-Skript mit folgender Anweisung Daten aus einer mySQL-DB auslesen:
„SELECT * FROM $tabellenname ORDER BY company ASC“;
Funktioniert auch soweit.
Jetzt möchte ich zum Beispiel das nur die Datensätze gewählt werden, bei denen der Name der company mit A beginnt.
Kann mir jemand helfen, wie die entsprechende Anweisung dann lauten muß?
Danke im voraus,
Jan
Hi,
„SELECT * FROM $tabellenname WHERE company LIKE ‚A%‘ ORDER BY company ASC“;
ggfls auch aus PhP mit Variable:
„SELECT * FROM $tabellenname WHERE company LIKE '“.$Variable."’ ORDER BY company ASC";
Gruß
Hallo,
danke für die schnelle Antwort.
Jetzt habe ich natürlich gleich die nächste Frage:
Wie kann ich die die Namen mit mehreren unterschiedlichen Anfangsbuchstaben aus einer Tabelle selektieren?
Ich habe es mit:
SELECT * FROM prospekt WHERE company LIKE ‚x%‘ OR WHERE company LIKE ‚y%‘ OR WHERE company LIKE ‚z%‘ ORDER BY company ASC
und verschiedenen Varianten versucht, das funkt aber nicht.
Kannst Du oder sonst jemand weiterhelfen?
Danke im voraus,
Jan
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Guten Morgen,
der Syntax:
SELECT * FROM prospekt WHERE company LIKE ‚x%‘ OR WHERE
company LIKE ‚y%‘ OR WHERE company LIKE ‚z%‘ ORDER BY company
ASC
ist nicht korrekt. WHERE kommt nur bei der ersten Anweisung, danach kommt AND oder OR. Für eine Abfrage die mehrere Anfangsbuchstaben verwendet, würde ich den Befehl SUBSTR() in Verbinung mit IN verwenden.
Dieser baut sich so auf: SUSBTR([spaltenname],[position_start],[anzahl_stellen])
Würde dann bei Deiner Abfrage wir folgt aussehen:
SELECT \*
FROM prospekt
WHERE SUBSTR(company,1,1) IN ('X','Y','Z')
ORDER BY company ASC
Wenn noch Groß-/Kleinschreibung keine Rolle spielen sollen ggfls. noch zusätzlich normalisieren:
SELECT \*
FROM prospekt
WHERE UPPER(SUBSTR(company,1,1)) IN UPPER(('X','Y','Z'))
ORDER BY company ASC
Gruß
Andreas
Hallo Andreas,
danke für die prompte Antwort. Ich habe versucht Deine Lösung wie folgt umzusetzen:
SELECT * FROM prospekt WHERE UPPER(SUBSTR(company,1,1)) IN UPPER ((‚X‘,‚Y‘,‚Z‘)) ORDER BY company ASC
Bekomme dann aber folgende Meldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\LP67\lp67_prospekt_list.php on line 31
Und weiss nicht, woran es liegt.
Ich habe aber folgende andere Lösung gefunden, sieht nicht ganz so elegant aus, scheint aber zu funktionieren:
SELECT * FROM prospekt WHERE company LIKE ‚x%‘
UNION SELECT * FROM prospekt WHERE company LIKE ‚y%‘
UNION SELECT * FROM prospekt WHERE company LIKE ‚z%‘
ORDER BY company ASC
Gruß,
Jan
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo,
danke für die schnelle Antwort.
Jetzt habe ich natürlich gleich die nächste Frage:
Wie kann ich die die Namen mit mehreren unterschiedlichen
Anfangsbuchstaben aus einer Tabelle selektieren?
Ich habe es mit:
SELECT * FROM prospekt WHERE company LIKE ‚x%‘ OR WHERE
company LIKE ‚y%‘ OR WHERE company LIKE ‚z%‘ ORDER BY company
ASC
und verschiedenen Varianten versucht, das funkt aber nicht.
Kannst Du oder sonst jemand weiterhelfen?
Versuchs mal mit
SELECT * FROM prospekt WHERE (company LIKE ‚x%‘) OR (company LIKE ‚y%‘)
usw.
Die andere Variante von Andreas ist aber auch nett 
Und weiss nicht, woran es liegt.
Könnte daran liegen, dass ich selber eher im Oracle statt im MySql-Umfeld mich bewege und damit der Befehl SUBSTR() wohl keine allgemeine SQL-Syntax ist. Da Du ja eine funtkionierende Lösung gefunden hast denke ich mal ist das dann auch in Ordnung.
Gruß
Andreas