in mysql queries nur einen teil eines keys abfragen
hari
- datenbank
hallo,
ich möchte mit mysql aus einem table zb nur namen auslesen, deren anfangsbuchstaben mit 'h' beginnen, oder die an der 2. stelle im namen ein 'a' haben. wie kann ich das machen?
grüsse
Hallo
ich möchte mit mysql aus einem table zb nur namen auslesen, deren anfangsbuchstaben mit 'h' beginnen,
Wildcard für beliebige Zeichen ist das Prozentzeichen %.
oder die an der 2. stelle im namen ein 'a' haben. wie kann ich das machen?
MySQL kennt die Funktion SUBSTR, siehe Handbuch, String Functions.
Freundliche Grüße
Vinzenz
PS: Was hat Deine Frage mit "Teil eines Keys" zu tun?
»»
PS: Was hat Deine Frage mit "Teil eines Keys" zu tun?
nix, mir ist nur die bezeichnung field nicht eingefallen. ;)
grüsse und danke
vielleicht kann mir noch jemand kurz helfen bitte?
ist schon so spät und ich bekomme das nicht richtig hin:
mysql_query("select name from table where substr('name',1,1) = 'h'")
laut mysql manual würde das - wenn ich es richtig verstanden habe - "select name from table where n = 'h'" ergeben.
ich will aber "select name from table where 'anfangsbuchstabe von name' = 'h'" abfragen.
wie mache ich das?
grüsse
Hallo
vielleicht kann mir noch jemand kurz helfen bitte?
ist schon so spät und ich bekomme das nicht richtig hin:
select name from table where substr('name',1,1) = 'h'
den völlig überflüssigen PHP-Kram habe ich weggestrichen.
In MySQL ist es nicht nötig, Namen wie "name" zu quoten. Und wenn man es macht, dann muss man es richtig machen. Das einfache Hochkomma ist in diesem Fall falsch. Wie es richtig geht, steht im Handbuch.
Freundliche Grüße
Vinzenz
ich habe es auch ohne hochkomma versucht und da gab es dann:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource
Hallo
ich habe es auch ohne hochkomma versucht und da gab es dann:
wie lautete Dein SQL-Statement? Es ist stets eine gute Idee, SQL-Statements in einer Variable zusammen zu bauen, dann kann man das SQL-Statement zu Debugzwecken leicht ausgeben.
Warning: mysql_result(): supplied argument is not a valid MySQL result resource
SELECT bild_name
FROM bilder
WHERE SUBSTRING(bild_name, 1, 1) = 'a' -- Einsatz von SUBSTRING
liefert mir das gleiche erwartete Ergebnis wie
SELECT bild_name
FROM bilder
WHERE bild_name LIKE 'a%' -- Einsatz des Jokerzeichens %
Meine Tabelle und meine Spalten heißen eben ein klein wenig anders.
Freundliche Grüße
Vinzenz
select sum(re_gegeben) from $rechnungstable where substr(re_gewerk,1,1) = '$catcount'
spuckt mir lauter Warning: mysql_result(): supplied argument is not a valid MySQL result resource
eine zeile darüber:
select sum(os_schaetzung1) from $maintable where c_number = '$catcount'
funktioniert klaglos.
kann es vielleicht sein, dass es ein prob ist, dass re_gewerk ein string ist und $catcount (vermutlich) integer?
Hallo
select sum(re_gegeben) from $rechnungstable where substr(re_gewerk,1,1) = '$catcount'
Das ist keine SQL-Anweisung, das ist irgendwelcher irrelevanter PHP-Kram. Wie ich Dir bereits geraten habe, ist es stets eine gute Idee, in etwa so vorzugehen:
$sql = "select sum(re_gegeben) from $rechnungstable where substr(re_gewerk,1,1) = '$catcount'";
echo $sql; # gebe zu Debugzwecken das SQL-Statement aus.
...
Freundliche Grüße
Vinzenz
Die genaue SQL-Anweisung wäre z.B.:
select sum(re_gegeben) from table where substr(re_gewerk,1,1) = '1'
Grüße
Hallo hari,
select sum(re_gegeben) from table where substr(re_gewerk,1,1) = '1'
"table" ist ein reserviertes Wort - schreibe den Tabellennamen in Backticks (`) oder (imho besser) verpass der Tabelle einen anderen Namen.
Grüße aus Nürnberg
Tobias
echo $begrüßung;
ich habe es auch ohne hochkomma versucht und da gab es dann:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource
Das ist ein Folgefehler den PHP meldet. Du hast einer Funktion einen Wert übergeben, der nicht erwartet wurde. Diesen hast du sicher von einer anderen Funktion als Rückgabewert bekommen. Die mysql_*-Funktionen haben die Angewohnheit, im Fehlerfall statt einer Ressource ein false liefert. Darauf sollte man reagieren und nicht einfach im Code weitermachen. Die zu dem false-Rückgabewert gehörende Fehlermeldung muss man explizit mit mysql_error() abfragen. Eine beispielhafte vollständige MySQL-Abfrage findest du im MySQL-Kapitel des PHP-Handbuches.
echo "$verabschiedung $name";
Hallo Vinzenz,
MySQL kennt die Funktion SUBSTR, siehe Handbuch, String Functions.
Nein, die Funktion heißt SUBSTRING.
Grüße aus Nürnberg
Tobias
Hallo Tobias,
MySQL kennt die Funktion SUBSTR, siehe Handbuch, String Functions.
Nein, die Funktion heißt SUBSTRING.
Ja, die Funktion heißt SUBSTRING(), ja SUBSTR() ist ebenfalls korrekt, siehe letzter Absatz des Doku-Abschnittes, ach ja MID() wäre auch richtig.
Freundliche Grüße
Vinzenz,
der sich ein Ingrid-Posting ersparen wollte.