我正在使用MySQL程序,其中SELECT * FROM progress where case_id = current_data;
的结果如下表所示。
+-----------------------------------------------------+
| id_progress | task_id | case_id | user_id | current |
+-----------------------------------------------------+
| 247 | 4 | 1002 | 1 | 0 |
| 248 | 1 | 1002 | 1 | 0 |
| 249 | 2 | 1002 | 1 | 0 |
| 250 | 3 | 1002 | 1 | 0 |
+-----------------------------------------------------+
我想创建一个IF语句来检查current
表。如果所有行都等于'0'
。
但我不知道如何继续。在IF语句中使用select 在我看来很奇怪。
答案 0 :(得分:1)
您可能只想汇总结果,以便SELECT只返回一个值。
例如,以下内容返回NonZero行的数量。然后,您要检查没有NonZero行。
IF ( (SELECT SUM(CASE WHEN current = 0 THEN 0 ELSE 1 END)
FROM progress
WHERE case_id = current_data
)
=
0
)
答案 1 :(得分:0)
试试这个:
SELECT IF( EXISTS(
SELECT *
FROM current
WHERE current_data = 0), 1, 0)
或
IF (SELECT 1 = 1 FROM current WHERE current_data = 0) THEN
BEGIN
SELECT * FROM progress where case_id = current_data;
END;
ELSE
BEGIN
//some other code
END;
END IF;