0
我有一個查詢,它由3個查詢組成。 根據一個查詢的結果,我想運行其他兩個查詢中的任何一個。選擇在單個MySQL查詢中的多個查詢中運行哪個查詢
SELECT
CASE type
WHEN 'H'
THEN (select count(*) from tableN where hid = 228)
when 'S'
THEN ( select cid,cname from tableC where cid = (select hid from tableN where sid = 228) )
END
FROM tableC WHERE cid=228;
但由於查詢一個只返回1列即COUNT(*),而其他查詢返回兩列,即CID和CNAME,我收到以下錯誤:
操作數應包含1列(S)
如何修改我的查詢,以便-----
當類型是「H」,下面的查詢運行:
select count(*) from tableN where hid = 228
,當類型爲「S」,下面的查詢運行:
select cid,cname from tableC where cid = (select hid from tableN where sid = 228)
SQL查詢的結果集中的列是固定的。記住這一點,編輯你的問題提供樣本數據和預期結果。 –
我沒有看到你用另一個查詢包裝不同的查詢,然後用'type'變量在它們之間進行選擇的可能值。它只會讓你感到困難。也許你應該在這裏重新考慮你的方法。 –