Mysql 根据where条件获取特定记录

Mysql 根据where条件获取特定记录,mysql,sql,Mysql,Sql,我有一个包含国家、州、城市和地区的mysql表。我只想得到那些城市或地区为null或空的国家。我尝试了以下查询: select distinct country from xyz where state != "" and ((city="" and Locality="") or (city="" and Locality!="") or (city!="" and Locality="")) order by country 基本上需要获取城市或地区值为空的所有国家/地区。这个查询为我提供

我有一个包含国家、州、城市和地区的mysql表。我只想得到那些城市或地区为null或空的国家。我尝试了以下查询:

select distinct country from xyz where state != "" and ((city="" and Locality="") or (city="" and Locality!="") or (city!="" and Locality="")) order by country
基本上需要获取城市或地区值为空的所有国家/地区。这个查询为我提供了几个城市和地区都位于同一行的国家。我做错了什么?它给了我城市和地方都有价值的国家


我需要没有城市或地区的国家列表,这意味着国家的所有城市或地区都是空的或空的。如果国家的一个记录有城市或地区值,则不要国家

需要使用
而不是

select distinct country from xyz where state <> "" and (city="" or city is null or Locality="" or Locality is null) order by country
从xyz中选择不同的国家/地区,其中按国家/地区排列的国家/地区顺序为“”(city=“”或city为空或Locality=“”或Locality为空)

您是在寻找简单的
还是

select distinct country
from xyz
where state <> '' and
      (city = '' or Locality= '')
order by country;
或者可能不需要
状态
上的条件

顺便说一下,对于SQL中的字符串常量,应该使用单引号而不是双引号

编辑:

如果要查询给定国家/地区的所有值为空或
NULL
,请使用聚合和
having
子句:

select country
from xyz
group by contry
having min(city = '' or Locality= '' or city is null or Locality is null) > 0
order by country;

从xyz中选择不同的国家(state!=“and(city=”“或Locality=”“)
尝试使用
IsNull
属性

SELECT DISTINCT country
FROM xyz
WHERE state <> '' AND
  (city = '' OR Locality= '' OR city IS NULL OR Locality IS NULL)
ORDER BY country;
选择不同的国家/地区
来自xyz
其中状态“”和
(城市=“”或地区=“”或城市为空或地区为空)
按国家排序;

int
值不能包含
''
值。如果您在
city
Locality

中有任何
int
值,您可以通过更新您的问题提供一些示例数据吗?@CM,因此此帖子现在不是有效的问题/答案结构。“我已经投票结束了。”詹多根——既然如此,我应该再补充一个问题吗?我想我的判断是快速;查看编辑队列,我发现您没有编辑原始查询,只有文本。撤回接近票数的投票。@CM您确实需要学习如何在问题中使用和/或。我猜你的意思是
这意味着国家的所有城市和地区都是空的或空的
应该是“国家的所有城市或地区都是空的或空的”。抱歉搞混了。这给了我所有的国家,哪怕只有一个记录,所有记录中的城市或地区都是空的。在这种情况下,总和将始终大于0。对您的问题的编辑明确要求这样做:“我需要没有城市或地区的国家/地区列表,这意味着国家/地区的所有城市或地区都为空或空。如果国家/地区的一个记录具有城市或地区值,则不需要国家/地区。”.比如说“abc”这个国家,我有4项城市记录。其中2条记录为空,2条记录具有城市值。在这种情况下,总和(城市=“”)将大于0。我只想要一个所有花旗银行都是空的国家。这同样适用于位置。@CM。嗯。那应该是
min()
.Awesome:)我在做sum(city='')=count(city)。min()太完美了!
select distinct country
from xyz
where state != ""
and (city="" or Locality="")
SELECT DISTINCT country
FROM xyz
WHERE state <> '' AND
  (city = '' OR Locality= '' OR city IS NULL OR Locality IS NULL)
ORDER BY country;