我遇到了一个问题,概念是来自@count
的值来执行查询和执行查询。我该怎么做才能解决它?
这是我的代码:
SELECT
CASE WHEN ((SELECT COUNT(*) FROM tb_dana_user WHERE userid=1234 AND password=1234) = 0)
THEN (SELECT * FROM tb_dana_user)
ELSE (SELECT 'bar')
END
当我将SELECT * FROM tb_dana_user
更改为SELECT 'its true'
时,它正常运行。如何解决这个案子?抱歉英文不好。概念是真的,然后查询将执行SELECT * FROM tb_dana_user
答案 0 :(得分:0)
CASE
表达式求值为一个值,即它用于根据某些条件求值到一组结果中的一个。
例如:
SELECT CASE
WHEN type = 1 THEN 'foo'
WHEN type = 2 THEN 'bar'
ELSE 'foo-bar'
END AS column_name
FROM sometable`
CASE语句执行一组语句中的一个,根据某些条件返回一个结果。
then语句有一个查询(select * from tb_dana_user
),它返回多行。
在您的情况下,您可以将select * from tb_dana_user
返回的值限制为同时为一列的一个。
SELECT
CASE WHEN ((SELECT COUNT(*) FROM tb_dana_user WHERE userid=1234 AND password=1234) = 0)
THEN (SELECT id FROM tb_dana_user limit 1)
ELSE (SELECT 'bar')
END