2012-04-09 79 views
55
SET @v1 := SELECT COUNT(*) FROM user_rating; 
SELECT @v1 

當我使用set變量執行此查詢時,會顯示此錯誤。如何將查詢結果存儲在使用mysql的變量中

Error Code : 1064 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use 
near 'SELECT count(*) FROM user_rating' at line 1 

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

(1 row(s) returned) 
Execution Time : 00:00:00:343 
Transfer Time : 00:00:00:000 
Total Time  : 00:00:00:343 
+0

http://stackoverflow.com/questions/6081436/how-to- use-alias-as-field-in-mysql/6081523#6081523 – 2016-08-31 09:34:15

回答

98

用圓括號選擇的環繞聲。

SET @v1 := (SELECT COUNT(*) FROM user_rating); 
SELECT @v1; 
+2

該子查詢是否只包含1行和1列? 1.#1242 - 子查詢返回多於1行',2。'#1241 - 操作數應該包含1列' – Shafizadeh 2016-06-29 22:40:55

+0

SELECT @ v1;這條線不適用於我 – 2017-05-11 09:39:28

+0

@RajatGupta:你在哪裏運行它?並定義「不工作」。 – 2017-05-11 09:56:13

19

此外,如果你想通過一個查詢一次設置多個變量,你可以用其他的語法,用於設置是這樣的變量:SELECT @varname:=value

一個實際的例子:

SELECT @total_count:=COUNT(*), @total_price:=SUM(quantity*price) FROM items ... 
7

使用本

SELECT weight INTO @x FROM p_status where tcount=['value'] LIMIT 1; 

測試workes精...

+0

這個語句中的括號'[]'是什麼意思? – alex 2016-07-01 05:06:10

+0

沒有它只是一個佔位符跳過[],只是把你的價值在單引號 – 2016-07-02 07:00:33

相關問題