我有一个名为“ thumb”的表,其中包含图像的相对路径以及与图像相关的其他数据(例如其标题和说明)。我正在工作的网站的每个页面代表不同类别的图像。现在,我对每个页面(类别)都有单独的存储过程,以根据其ID选择不同的图像。是否可以为每个页面(类别)使用一个存储过程来选择不同的图像,或者我需要为每个图像范围创建单独的存储过程?
现在是这样的: “所有作品”页面的步骤:
BEGIN
SELECT * FROM thumb ORDER BY id ASC;
END
“绘画”程序:
BEGIN
SELECT * FROM thumb WHERE id BETWEEN 12 AND 15 ORDER BY id ASC;
END
“图纸”的程序:
BEGIN
SELECT * FROM thumb WHERE id BETWEEN 16 AND 19 ORDER BY id ASC;
END
等等。
存储过程是否可以侦听调用的来源以及if语句决定要应用哪个SELECT * FROM语句?
答案 0 :(得分:1)
您需要类似的东西
CREATE PROCEDURE get_images (IN pagetype TEXT)
SELECT *
FROM thumb
WHERE CASE pagetype WHEN 'Paintings' THEN id BETWEEN 12 AND 15
WHEN 'Drawings' THEN id BETWEEN 16 AND 19
ELSE TRUE
END
ORDER BY id ASC;