7 Stimmen

MySQL Select mit LIKE und WHERE

Ich habe eine Tabelle mit biografischen Daten, und ich muss eine Abfrage durchführen, die Personen auswählt, die das Wort "gestorben" in ihrer Biografie haben und deren Todesdatum NULL ist. Das funktioniert nicht:

SELECT * FROM people
WHERE bio LIKE '%died%'
AND death_date IS NULL

Das wählt alle aus, deren Sterbedatum null ist, aber wählt auch Personen aus, die das Wort "gestorben" nicht in ihrer Biografie haben. Kann ich dies in einer einzigen Abfrage tun?

2 Stimmen

Sind Sie sicher, dass auch Personen gefunden werden, die nicht "gestorben" in ihrem Lebenslauf haben? Denken Sie daran, dass die Suche auch Wörter einschließt, die "gestorben" enthalten, wie z. B. "studiert" und "verkörpert".

0 Stimmen

Beispieldaten weitergeben, die sich wie folgt verhalten.

5voto

Ben Punkte 58046

Vielleicht liegt das Problem an den Anführungszeichen, verwenden Sie " anstelle von ', um die LIKE-Klausel zu umschließen.

SELECT * FROM people
WHERE bio LIKE "%died%"
AND death_date IS NULL

0 Stimmen

Wenn Sie die Abfrage auf diese Weise ausführen, erhalten Sie die gleichen Ergebnisse.

0 Stimmen

Welchen Datentyp hat das Feld "Bio"?

5voto

Yasen Zhelev Punkte 3950

Es könnte auch ein Wort wie "völlig tot" sein, und sie werden trotzdem ausgewählt. Prüfen Sie sorgfältig, ob der Ausdruck "gestorben" nicht als Teil eines Wortes in den ausgewählten Datensätzen vorkommt.

1 Stimmen

Vergessen Sie nicht, dass ein Leerzeichen vor "died" nicht funktioniert, wenn das Wort am Anfang des Textes steht.

0voto

Mauro Morales Punkte 1447

Ich würde vorschlagen, Sie machen Bio Großbuchstaben und haben wie "%DIED%" auch sicherstellen, dass death_date wirklich Null ist, sehen, wenn Sie eine Antwort von beiden, wo Fälle unabhängig erhalten. Welche Antwort erhalten Sie?

0 Stimmen

Die Verwendung von WHERE death_date IS NULL allein gibt die Personen zurück, deren Todesdatum NULL ist.

0 Stimmen

Worüber? WHERE UPPER(bio) LIKE '%DIED%'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X