私は単純なテンポラリテーブルを持っていて、可変値をチェックして上記テーブルにデータを挿入するwhileループを持っています。ここに私のクエリです:whileループは一時テーブルデータを使用していません
SET @FolderId = 7;
CREATE TEMPORARY TABLE FolderStructure
(
id int,
name varchar(255)
);
WHILE (@FolderId > 0) DO
INSERT INTO FolderStructure
SELECT `folders`.`id`,
`folders`.`folder_name`
FROM `folders`
WHERE `folders`.`id` = @FolderId;
SET @FolderId = (SELECT `folders`.`parent_folder`
FROM `folders`
WHERE `folders`.`id` = @FolderId);
END WHILE;
SELECT * FROM FolderStructure;
DROP TABLE FolderStructure;
それはで、アウトerroringだ:
SQLエラー(1064):あなたは、あなたのSQL構文でエラーが発生しています。私は近くに使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してくださいライン1
で 'WHILE(@FolderId> 0) INSERT INTO FolderStructureがfolders`.`id` `SELECT ください'私がクエリで何が間違っているのか分かりませんが、私はMSSQLに慣れています。それが理由かもしれません。データは明らかにテーブルにあり、whileループの外側でselectを実行するとうまくいきます。
アドバイスはありますか?
うわー、どうして私はそれを逃しましたか?あまりにも多くの開発!ありがとう:)それは間違いなくTSQLで簡単です –