6

私はMySQL変数を持っています

@query = CONCAT('INSERT INTO history VALUES (',1,',',50,',UTC_TIMESTAMP()');

変数に存在する挿入ステートメントを実行したい。

4

3 に答える 3

17

最初にステートメントを使用して準備しPREPARE、次に使用する必要がありますEXECUTE

ここを参照してください: http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html

何かのようなもの:

SET @query = CONCAT("INSERT INTO history VALUES (",1,",",50,",UTC_TIMESTAMP()");

PREPARE stmt1 FROM @query; 
EXECUTE stmt1; 
DEALLOCATE PREPARE stmt1; 
于 2012-04-12T11:43:26.387 に答える
2
Set @query = CONCAT("INSERT INTO history VALUES (",1,",",50,",UTC_TIMESTAMP()");

その後

PREPARE stmt_name FROM @query

そしてついに

EXECUTE stmt_name
于 2012-04-12T11:52:34.900 に答える
-2

CONCAT()を削除すると、文字列を他に何も連結しようとしないため、エラーを生成する以外は何もしません。

于 2015-07-02T21:20:39.243 に答える