我有一个像下面这样的查询结构,我想知道是否有一种方法可以将选择查询作为一个使用CASE语句或其他方式写入,以便将值插入到基于它们的适当变量中值。mysql switch case
DECLARE passes INT;
DECLARE fails INT;
..
SELECT count(score)
INTO passes
FROM scores
WHERE score >= 40;
SELECT count(score)
INTO fails
FROM scores
WHERE score < 40;
默多克想出了一个很好地解决了这个问题,我不得不做出一个改变是将每个值中有相应的变量
SELECT *
INTO passes, fails
FROM (SELECT SUM(CASE
WHEN score >= 40 THEN 1
ELSE 0
END) AS _passes,
SUM(CASE
WHEN score < 40 THEN 1
ELSE 0
END) AS _fails
FROM scores) AS x;
正如你到了那里的40分也不会通过或失败 – 2011-03-12 13:08:53
感谢逻辑一个侧面说明,上面的SQL仅仅是一个例子,实际的数据,逻辑等即时通讯使用是不同的。 – volting 2011-03-12 13:10:16
这并不容易,因为您从两张不同的表中进行选择。我想不出有什么解决方案比你做的更有效率,因为他们必须归结为两个不同的“底层”查询,至少你现在拥有的是什么简单易读。 – 2011-03-12 13:26:54