Veröffentlicht 4. September 200618 j Hallo, ich habe ein Eingabefeld in einer Webseite, über das man nach einem Usernamen suchen kann. Die Select-Anweisung wird dann mit LIKE %durchgeführt, um alle Namen zu erhalten, die mit dem angegebenen String anfangen: Gebe ich z.B. "t" in das Eingabefeld, wird folgende Abfrage durchgeführt: SELECT id,name FROM user WHERE username LIKE 't%' ORDER BY username ASC LIMIT 0,15 Als Ergebniss bekomme ich alle User, deren username mit "t" beginnt, was auch richtig ist. Gebe ich aber jetzt "to" in das Feld ein, wird mir kein User ausgegeben, auch der User Tom nicht, obwohl der ja auch mit "to" beginnt. Woran kann das denn liegen?
4. September 200618 j Das macht keinen Unterschied... Ich habe rausgefunden, dass auch ein Feld group_id = NULL abgefragt wird. Diese Abfrage verursacht irgendwie den Fehler. Das Feld group_id ist in der Datenbank auf NULL gesetzt, wenn keine ID vorhanden ist, wie frage ich das aber jetzt auf NULL ab? WHERE group_id = NULL geht nicht WHERE group_id = "NULL" geht auch nicht
4. September 200618 j hmm ich schätze jetzt mal, dass bei % immer mehrere Zeichen erwartet werden aber erklären kann ich mir das auch nicht. Setz für das feld den Defaultwert 0 fest, dann steht etwas drin, und ich denke eine "Gruppe 0" wird es ja wohn nicht geben.
4. September 200618 j Ne, % steht für 0-X Zeichen. Der Fehler ist bei der Abfrage nach dem Wert MySQL-Feldwert NULL
4. September 200618 j Das Feld group_id ist in der Datenbank auf NULL gesetzt, wenn keine ID vorhanden ist, wie frage ich das aber jetzt auf NULL ab? WHERE group_id IS NULL Zum anderen Problem: Kann es sein, dass im Datensatz zu Tom Whitespaces im Namen enthalten sind? Z.B. ein Newline-Character, der Dir im Browser nicht angzeigt wird, jedoch bei der Suche nach 'to%' berücksichtigt wird?
4. September 200618 j hmm ich schätze jetzt mal, dass bei % immer mehrere Zeichen erwartet werden aber erklären kann ich mir das auch nicht. Setz für das feld den Defaultwert 0 fest, dann steht etwas drin, und ich denke eine "Gruppe 0" wird es ja wohn nicht geben. Ne, Für solche Fälle gibt es ja gerade den Wert NULL. Wenn da 0 drinnen steht, wäre das eine Verknüpfung zum Satz 0... Danke für Eure Hilfe, IS NULL hat funktioniert Jetzt gehts richtig :-)
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.