gpt4 book ai didi

MySQL查询多条件检查和更新问题

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

我们可以编写一个查询,该查询可以在成功实现 3 个记录字段的基础上更新单个记录吗?

例如

第一个表:table1

第一个表字段

id INT

名称 varchar

status enum('full', 'half') 默认为 Null

第二个表:table2

第二个表字段

id INT

table1_id int - 外键

qty1 整数

qty2 整数

============

表1

1

测试

表2

id -> 1

table1_id -> 1

数量1 -> 1

数量2 -> 2

<小时/>

id -> 2

table1_id -> 1

数量 1 -> 2

数量2 -> 2

==============

一对曼尼关系

表 1 --> 表 2

========================

将(表 1 的)状态字段更新为“完整”的条件是,对于 table2 中 table1_id 的所有记录,Qty1 == qty2 (对于 table1_id 的所有记录)且 qty2 !=0

否则休息到“一半”

最佳答案

如果聚合 Table2,对要测试每条记录的 bool 表达式进行 SUM(),结果将是匹配记录的数量 (因为 TRUE 转换为 1FALSE 转换为 0)。因此,只需检查匹配记录数是否等于记录总数即可:

UPDATE Table1 SET status = (
SELECT IF(SUM(Qty1=Qty2 AND Qty2!=0) = COUNT(*), 'full', 'half')
FROM Table2
WHERE table1_id = Table1.id
)

查看 sqlfiddle .

关于MySQL查询多条件检查和更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12838313/

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