1

ローカル変数への SELECT クエリの結果に基づいて、テーブルにデータを挿入する SQL クエリを作成する必要があります。私の DB プラットフォームは MySQL 5.1 ですが、ここで違いが生じるとは思いません。基本的に、私がやりたいことは次のとおりです。

SELECT id INTO var_name FROM table1 WHERE some_column='something' LIMIT 1;
INSERT INTO table2 (`number`) VALUES (@var_name);

I can't get past the first statement, though, as I get the error "Undeclared variable var_name". I've also tried putting the statement in a BEGIN/END block, and a stored procedure, but then I encounter other errors which state only that there is an error on the SELECT line. What am I doing wrong?

4

3 に答える 3

3

@var_name宣言してから選択する必要があります@var_name。MySQLについてはよくわかりませんが、次のようにしてみてください。

declare @var_name varchar(100);
SELECT id INTO @var_name FROM table1 WHERE some_column='something' LIMIT 1;
INSERT INTO table2 (`number`) VALUES (@var_name);

編集:おそらくそれを行うより良い方法:

insert into table2 ('number')
select id 
from table1 
where some_column = 'something' LIMIT 1;

これにより、変数の必要性がなくなり、将来的にははるかに高速で理解しやすくなります。

于 2009-01-23T13:51:56.503 に答える
-2
CREATE TABLE table_name
AS  
SELECT ...(your select)
于 2012-12-10T18:36:28.960 に答える