gpt4 book ai didi

mysql - 如何在一个查询中进行多个计数/存在?

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:16 28 4
gpt4 key购买 nike

我正在努力弄清楚如何在不对 mysql 进行两次调用的情况下从一个表中检查两件事。

我有一个 Members 表。我想测试MemberID 列中是否存在某个值,以及PhoneNumber 列中是否存在某个值。 MemberIDPhoneNumber 都已编入索引。

但是我尝试的语法有问题。例如,每个

SELECT COUNT(1) AS IDExists FROM Members WHERE MemberID = '999999999999' LIMIT 1

SELECT COUNT(1) AS PhoneExists FROM Members WHERE PhoneNumber = '5555555555' LIMIT 1

有效。为什么它们不能以某种方式组合起来,比如

SELECT (COUNT(1) AS IDExists FROM Members WHERE MemberID = '999999999999' LIMIT 1), (COUNT(1) AS PhoneExists FROM Members WHERE PhoneNumber = '5555555555' LIMIT 1)

?

或者,因为我只关心值是否出现零次,或者根本不关心,比如

SELECT EXISTS (SELECT 1 FROM Members WHERE MemberID = '999999999999')

?

但是,不幸的是,即使对于我的一个查询,该语法也有问题。

关于如何实现这一点有什么建议吗?

最佳答案

你想要一个条件 SUM

SQL FIDDLE

SELECT 
SUM( CASE
WHEN PhoneNumber = '5555555555' THEN 1
ELSE 0
END) PhoneExists,
SUM( CASE
WHEN MemberID = '999999999999' THEN 1
ELSE 0
END) IDExists
FROM Members

关于mysql - 如何在一个查询中进行多个计数/存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32470645/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com