MySQL程序的ALL ROWS参数

时间:2014-08-25 20:50:25

标签: mysql stored-procedures parameters

我想创建一个可以使用个人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语句以供两个选项使用。

谢谢。

1 个答案:

答案 0 :(得分:2)

我认为最直接的编码方式是:

WHERE  primary_id = proc_id OR proc_id = -1

(我没有看到@EdGibbs在评论中已经给出了这个答案。你为什么不发布这个答案?)

BTW,我会使用NULL而不是-1,因为SQL中的NULL意味着用于"没有值。"然后查询将具有:

WHERE  primary_id = proc_id OR proc_id IS NULL