我有一個可以正常使用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