我有一個像下面這樣的查詢結構,我想知道是否有一種方法可以將選擇查詢作爲一個使用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