2012-04-27 68 views
1

我試圖將子查詢結果存儲在使用MySQL的會話變量中,但問題是當我像這樣執行此查詢(請參閱下面的查詢)時,錯誤消息將如此顯示(請參見下面的錯誤消息)。如何使用MySQL將子查詢結果存儲在會話變量中?

我不知道如何解決這個問題。

(0 row(s) affected) 
Execution Time : 00:00:00:343 
Transfer Time : 00:00:00:000 
Total Time  : 00:00:00:343 

Error Code : 1222 
The used SELECT statements have a different number of columns 

Execution Time : 00:00:00:000 
Transfer Time : 00:00:00:000 
Total Time  : 00:00:00:000 

查詢

SET @post := 0; 

SELECT user_name, 
(SELECT COUNT(*) INTO @post FROM post WHERE user_id = '23332'), 
@post 
FROM `user_fans` WHERE user_id = '23332'; 
+0

爲什麼你在這個查詢中使用會話變量? – Quassnoi 2012-04-27 14:10:15

回答

1
SET @post := 0; 

SELECT user_name, 
     @post := (SELECT COUNT(*) FROM post WHERE user_id = '23332'), 
     @post 
FROM `user_fans` 
WHERE user_id = '23332'; 
0

如果你只是想使用後數進一步那麼如果你想只顯示文章數,然後用很精緻

SELECT user_name, 
     (SELECT COUNT(*) FROM post WHERE user_id = '23332') as Post, 
FROM `user_fans` 
WHERE user_id = '23332'; 
相關問題