gpt4 book ai didi

MySQL 通过乘以其他行中的值返回 1 或 0

转载 作者:行者123 更新时间:2023-11-29 16:46:41 24 4
gpt4 key购买 nike

我有一个名为应用程序的表。该表有一个名为 status 的列。一个用户可以拥有多个应用程序。我想编写一个查询来根据整体状态检索用户应用程序的状态。如果应用程序的每个状态都是1,则查询需要返回1,否则返回0。(逻辑上和每个状态)。

我正在使用 BIT_AND 来执行此操作。如果有两个或多个数据要比较,此函数会显示正确的结果。如果只有一条记录,则该值为 1。

For example
0 * 0 => 1 (status) **This is error. Correct should be 0**
0 => 1 (status) **This is error. Correct should be 0**
1 * 0 = 0 (status)

我的表格如下所示 enter image description here

我正在使用这个查询。

SELECT bit_and(application.status)
from applicant_applications application
where application.applicant_id = 1;

这个问题可以通过程序轻松解决。但我正在查询中寻找一些东西。提前致谢

最佳答案

您可以使用几个聚合函数来确定查询结果。类似的东西

  SELECT IF(SUM(aa.status) = COUNT(DISTINCT aa.id), 1, 0) as `status`
FROM applicant_applications aa
WHERE aa.applicant_id = 1
GROUP BY aa.applicant_id;

足以检查所有应用程序的状态是否均为 1。

要进行测试,请查看这个 fiddle :

http://sqlfiddle.com/#!9/26a9bd/1

关于MySQL 通过乘以其他行中的值返回 1 或 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53055224/

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