我想创建一个程序,它可以接受一个单独的 ID,或者在没有它的情况下,所有可能的 ID。
我的设置如下:
CREATE PROCEDURE my_procedure(proc_id INTEGER)
IF proc_id = -1 THEN SET proc_id = ALL_IDS END IF
SELECT something...
FROM somewhere...
WHERE primary_id = proc_id;
我想知道如何使 ALL_IDS 成为所有 ID,以及如何调用 WHERE 语句以对两个选项都可用。
谢谢。
最佳答案
我认为最直接的编码方式是:
WHERE primary_id = proc_id OR proc_id = -1
(我没有看到@EdGibbs 已经在评论中给出了这个答案。你为什么不把它作为答案发布?)
顺便说一句,我会使用 NULL 而不是 -1,因为 SQL 中的 NULL 意味着用于“缺少值”。那么查询将有:
WHERE primary_id = proc_id OR proc_id IS NULL
关于mysql - MySQL 过程的 ALL ROWS 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25494164/