我有一个可以正常使用Case语句的语法的MySQL
BEGIN
SELECT ID, SID, SerialNumber, SerialType
FROM orders
WHERE paymentStatus = 'Completed'
AND paymentSuccess = '1'
AND VerificationStatus IS NULL
OR VerificationStatus NOT IN ('Found', 'NotFound', 'NotVerified');
END
但我需要改变它不同的基于传递到SerialType值返回一个MySQL的存储过程。我认为case语句可能是实现这一目的的最佳方法,但努力寻找正确的语法,下面的示例显示了迄今为止我尝试过的逻辑和方法。
BEGIN
SELECT ID, SID, SerialNumber, SerialType
FROM orders
CASE
WHEN SerialType IN ('Var1','Var2') THEN
WHERE paymentStatus = 'Completed' AND paymentSuccess = '1';
WHEN SerialType IN ('Var3','Var4') THEN
WHERE paymentStatus = 'Completed' AND paymentSuccess = '1' AND VerificationStatus IS NULL OR VerificationStatus NOT IN ('Found', 'NotFound', 'NotVerified');
END CASE
END
你的伪代码看起来像一个UPDATE,情况会返回一个值 – Mihai 2014-09-12 11:59:26
情况下不适合你正在尝试什么去做。你正在改变'WHERE'条件而不是输出。 – Bulat 2014-09-12 11:59:59