MySQL Select с помощью LIKE и WHERE - PullRequest
6 голосов
/ 19 ноября 2010

У меня есть таблица биографических данных, и мне нужно сделать запрос, который выбирает людей, у которых в биографии есть слово «умер» и чья дата смерти равна NULL. Это не работает:

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

Это выбирает всех, чья смерть_дата равна нулю, но также выбирает людей, у которых нет слова "умер" в их биографии. Могу ли я сделать это одним запросом?

Ответы [ 3 ]

5 голосов
/ 19 ноября 2010

Это может быть слово типа «полностью готов», и они все еще будут выбраны.Внимательно проверьте, не существует ли «умершая» фраза как часть какого-либо слова в выбранных вами записях.

4 голосов
/ 19 ноября 2010

Возможно, проблема в кавычках, используйте "вместо", чтобы обернуть предложение LIKE.

SELECT * FROM people
WHERE bio LIKE "%died%"
AND death_date IS NULL
0 голосов
/ 19 ноября 2010

Я бы посоветовал вам сделать заглавные буквы в биографии, и, например, "% DIED%" также удостовериться, что death_date действительно имеет значение null, посмотрите, получите ли вы ответ в обоих случаях независимо. Какой ответ вы получаете?

...