我有一個包含像這樣的CASE表達式語句的過程:如何在MySQL CASE表達式中使用「OR」條件?
BEGIN
....
WHILE counter < total DO
....
CASE ranking
WHEN 1 OR 51 OR 100 OR 167 THEN SET
project_name = 'alpha';
WHEN 2 THEN SET
project_name = 'beta';
WHEN 10 OR 31 OR 40 OR 61 THEN SET
project_name = 'charlie';
....
ELSE SET
project_name = 'zelta';
END CASE;
INSERT INTO project (id, name) VALUES (LAST_INSERT_ID(), project_name);
SET counter = counter + 1;
END WHILE;
END
$$
DELIMITER ;
當我調用上面的過程,與OR
陳述案件或者完全跳過或只在列表中的第一個項目匹配。我究竟做錯了什麼?
我認爲這個問題可以幫助你。 http://stackoverflow.com/questions/5487892/sql-server-case-when-or-then-else-end-the-or-is-not-supported – Alfaplus
我們不能使用IN查詢像WHEN IN (1,51,100,167) – sumit