• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Mysql Abfrage - Beginnt mit - LIKE

Hi ich möchte gern eine Feld abfragen / ausgeben das das mit A, B, C anfängt
Solange ich nur nach 'A%' suche klappt es.
Ich konnte zum kombinieren von verschiedenen Anfangswerten (Buchstaben) leider nichts finden. (von bis, aufzählung,)
Ich habe mal auf OR getippt und war eigentlich sicher das der Befehl erlaubt sein sollte.
Ich bekomme auch keinen Fehler ausgegeben.
Aber es wird auch nur alles was mit A anfängt ausgegeben.

Was also ist an
Code:
$ergebnis = mysql_query("SELECT * FROM Story WHERE Storyname LIKE 'A%' OR 'C%'");

falsch.

es gibt Werte mit beginnend mit A und C
 
Werbung:
Code:
SELECT * FROM Story WHERE Storyname LIKE 'A%' OR Storyname LIKE 'C%'
Etwas schicker saehe die Query mit einem regulaeren Ausdruck aus:
Code:
SELECT * FROM Story WHERE Storyname REGEXP '^[abc]'
Welche Variante perfomancetechnisch guenstiger ist muesstest Du allerdings noch testen.
 
Werbung:
Variabele von PHP verarbeiten

Hi,

ich möchte gern in einer SELECT Anweisung eine Variable (nicht aus SQL-Datenbank) verwenden.

Zeile 42
PHP:
$ergebnis = mysql_query("SELECT * FROM Story WHERE Storyname REGEXP '$_GET['Inhalt']' ");

doch ich bekomme eine Fehlermeldung. Ich vermute das Anführungszeichen oder ähnliches falsch sind

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /WWWROOT/199235/htdocs/Bereich-fantasien/ueber-fantasien_a-c_std.php on line 42
 
PHP:
$ergebnis = mysql_query("SELECT * FROM Story WHERE Storyname REGEXP '" . mysql_real_escape_string($_GET['Inhalt']) . "'");
 
Werbung:
Upps...

nun kommt nichts mehr (auch keine Fehlermeldungen) und so frage ich mich ob ich hätte schreiben sollen.

$_GET['Inhalt'] bzw Inhalt z.b. = "a-c" ist.

ich habe mir das aus einer anderen Zeile heraus gezogen
$filename = "ueber-fantasien_".$_GET['Inhalt']."_".BROWSER_SUFFIX.".htm";
gesendet wurde mit URL
href="index.php?Bereich=fantasien&Inhalt=a-c&#A-C"
Ich hatte mir also gedacht ich könnte einfach mit der Beschriebenen Zeile von @mermehaus

$ergebnis = mysql_query("SELECT * FROM Story WHERE Storyname REGEXP '" . mysql_real_escape_string($_GET['Inhalt']) . "'");
folgendes simulieren
$ergebnis = mysql_query("SELECT * FROM Story WHERE Storyname REGEXP 'a-c'");
so das dann im Ergebnis alles was mit a, b, oder c beginnt angegeben wird.
 
Zuletzt bearbeitet:
Abwärts sortiert

Ich habe nun den Fehler gefunden. Der Angabe musste noch mit ^ erklärt werden das der erste Buchstabe entscheidend ist.

$ergebnis = mysql_query("SELECT * FROM Story WHERE Storyname REGEXP '^[" . mysql_real_escape_string($_GET['Inhalt']) . "]'");
Nun wird aber anscheinend die umgekehrte Reihenfolge ausgegeben.
Und ich würde das gern über ORDER BY lösen.

Doch wird die Reihenfolge (Abwärz - ABC) nicht ausgegeben

PHP:
$ergebnis = mysql_query("SELECT * FROM Story WHERE Storyname REGEXP '^[" . mysql_real_escape_string($_GET['Inhalt']) . "]' ORDER BY '^[" . mysql_real_escape_string($_GET['Inhalt']) . "]' DESC ");
 
PHP:
$ergebnis = mysql_query("SELECT * FROM Story WHERE Storyname REGEXP '^[" . mysql_real_escape_string($_GET['Inhalt']) . "]' ORDER BY Storyname DESC ");
 
Werbung:
Das ist das offizielle Handbuch, dürfte eine Falschmeldung sein. Aber ich hab ja nicht mal Windows ..
 
Zurück
Oben