使用LIKE-mysql计算两个文本值
因此,我试图在一个查询中计算数据库中以Z和A开头的城市数量。通过几次谷歌搜索,我提出了以下问题:使用LIKE-mysql计算两个文本值,mysql,Mysql,因此,我试图在一个查询中计算数据库中以Z和A开头的城市数量。通过几次谷歌搜索,我提出了以下问题: SELECT COUNT(CASE city WHEN 'Z%' then 1 else null end) as count_Z, COUNT(CASE city WHEN 'A%' then 1 else null end) as count_A FROM city WHERE city LIKE 'Z%' AND 'A%'; 然而,当我应该为Z返回19行,为A返回43行时,我没
SELECT COUNT(CASE city WHEN 'Z%' then 1 else null end) as count_Z,
COUNT(CASE city WHEN 'A%' then 1 else null end) as count_A
FROM city
WHERE city LIKE 'Z%' AND 'A%';
然而,当我应该为Z返回19行,为A返回43行时,我没有得到任何返回
有人能帮忙吗?我很确定最后一行应该是:
城市如“Z%”或城市如“A%”的位置
。。。上次我检查时,名称不可能同时以Z和a开头。我认为您不能在案例陈述中使用以下形式
Z%
。实现这一点的一种方法是使用SUM()
而不是case:
SELECT SUM(name LIKE 'A%') countA,
SUM(name LIKE 'Z%') countZ
FROM city;
请注意,在对照两个值进行检查时,必须使用两个独立的LIKE
语句。考虑下表:
+------+------+
| id | name |
+------+------+
| 1 | AAA |
| 2 | ZZZ |
| 3 | AAB |
| 4 | ZZA |
+------+------+
以下查询:
SELECT * FROM <table>
WHERE name LIKE 'A%' OR 'Z%';
因为你必须使用像“A%”一样的
城市或像“Z%”一样的城市才能像预期的那样工作,即使用两个不同的LIKE语句。他必须有两个LIKE
语句才能工作。我尝试添加两个LIKE并使用OR,但两个值仍然返回0行。那么有没有办法在一个值中计算两个文本值查询?谢谢你提供更干净的版本!
+------+------+
| id | name |
+------+------+
| 1 | AAA |
| 3 | AAB |
+------+------+