Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用LIKE和WHERE选择MySQL_Mysql_Select_Null_Where_Sql Like - Fatal编程技术网

用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”前面添加空格将不起作用。