用LIKE和WHERE选择MySQL
我有一个传记数据表,我需要做一个查询,选择那些在他们的传记中有“死亡”这个词并且死亡日期为空的人。这不起作用:用LIKE和WHERE选择MySQL,mysql,select,null,where,sql-like,Mysql,Select,Null,Where,Sql Like,我有一个传记数据表,我需要做一个查询,选择那些在他们的传记中有“死亡”这个词并且死亡日期为空的人。这不起作用: SELECT * FROM people WHERE bio LIKE '%died%' AND death_date IS NULL 这会选择死亡日期为空的所有人,但也会选择在简历中没有“死亡”一词的人。我可以在一个查询中执行此操作吗?也许问题在于引号,请使用“而不是”来包装LIKE子句 SELECT * FROM people WHERE bio LIKE "%died%" AN
SELECT * FROM people
WHERE bio LIKE '%died%'
AND death_date IS NULL
这会选择死亡日期为空的所有人,但也会选择在简历中没有“死亡”一词的人。我可以在一个查询中执行此操作吗?也许问题在于引号,请使用“而不是”来包装LIKE子句
SELECT * FROM people
WHERE bio LIKE "%died%"
AND death_date IS NULL
它可能是一个类似“completelydied”的单词,它们仍将被选中。请仔细检查“died”词组是否不作为您所选记录中某个单词的一部分存在。我建议您使用bio大写字母,并选择“%died%”“还要确保死亡日期真的为空,看看你是否能从这两个案例中分别得到答案。你得到了什么回应 你确定它会返回那些在简历中没有“死亡”的人吗?请记住,它还将包括包含死亡的单词,如studed和imbodied。共享的示例数据的行为如下。使用WHERE death_date本身为NULL将返回其death_date为NULL的人。如何?其中像“%DIED%”这样的上限(bio)运行这样的查询会返回相同的结果。“bio”字段的数据类型是什么?不要忘记,如果单词位于bio的开头,则在“DIED”前面添加空格将不起作用。