gpt4 book ai didi

sql - 如果子查询导致SQLite情况

转载 作者:行者123 更新时间:2023-12-03 18:57:54 27 4
gpt4 key购买 nike

我在SQLite 3数据库中有以下SQL查询

  UPDATE Events 
SET location = CASE
WHEN identifier = (SELECT id FROM users_db.exerciseLists WHERE patientId = ? AND complete = 1)
THEN 'yellow'
WHEN identifier = ?
THEN 'green'
WHEN date_start < datetime('now')
THEN 'red'
WHEN date_start > datetime('now')
THEN 'blue'
ELSE 'green'
END,
type = CASE
WHEN identifier = ?
THEN 'yes'
ELSE 'no'
END


子查询

  (SELECT id FROM users_db.exerciseLists WHERE patientId = ? AND complete = 1) 


返回多个结果,但是上述case查询仅使用第一个返回的结果。

我究竟做错了什么?

谢谢

最佳答案

如果子查询返回多个结果,并且您想更新所有返回的结果,则最好使用如下IN语句:

WHEN identifier IN (SELECT id FROM users_db.exerciseLists WHERE patientId = ? AND complete = 1)

关于sql - 如果子查询导致SQLite情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15861159/

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