MySQL案例中的条件

时间:2015-01-29 18:44:59

标签: mysql

我有一个简单的过程,当另一个表有行时应该返回1,而当它没有时,它应该返回0。

BEGIN
DECLARE var INT;
SELECT COUNT(*) FROM myTable INTO var;
    CASE var WHEN var > 0 THEN
        SELECT 1 as NUMBER;
    WHEN var = 0 THEN
        SELECT 0 as NUMBER;
    END CASE;
END

SELECT COUNT(*) FROM myTable - 查询返回0,但过程返回1,CAST(var为UNSIGNED)不起作用。如何修复?

1 个答案:

答案 0 :(得分:1)

您正在混合CASE表单。从var移除CASE var,或从您的条件中移除var

您执行此操作的方式,在var = 0时,您将var (0)var > 0 (0)进行比较,并选择1

在这里,我从var子句中取出CASE,但将其保留在WHEN子句中:

BEGIN
DECLARE var INT;
SELECT COUNT(*) FROM myTable INTO var;
    CASE WHEN var > 0 THEN
        SELECT 1 as NUMBER;
    WHEN var = 0 THEN
        SELECT 0 as NUMBER;
    END CASE;
END