Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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?

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

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, % steht für 0-X Zeichen.

Der Fehler ist bei der Abfrage nach dem Wert MySQL-Feldwert NULL

WHERE group_id = NULL geht nicht

WHERE group_id IS NULL

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?

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.