2012-04-09 27 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 –

答えて

98

括弧で囲むサラウンド。 SELECT @varname:=value:あなたは1つのクエリで一度に複数の変数を設定したい場合は

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

サブクエリは1行と1列だけを含むべきですか? 1. '#1242 - サブクエリが1行以上を返します。 '、2.'#1241 - オペランドには1列が含まれています' – Shafizadeh

+0

SELECT @ v1;この行は私のために働いていません –

+0

@RajatGupta:あなたはそれをどこで実行していますか?そして、「働かない」と定義する。 –

19

また、あなたはこのように書き変数を設定するための他の構文を使用することができます。

実用例:

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

+0

これは単なるプレースホルダーで、[]をスキップして値を単一引用符で囲むだけです –

関連する問題