54

テーブル名を取得するのは、次のようなセット変数から行う必要がある場合があります。

SET @ID_1 = (SELECT ID FROM `slider` LIMIT 0,1);
SET @Cat = (SELECT Category FROM `slider` LIMIT 0,1);
select * from @Cat where ID = @ID_1

しかし、そのようにすると、MySQLはエラーを出力します。これは、MySQLでの私の赤ちゃんのステップであるため、誰かが私がそれを達成する方法を教えてくれる可能性があります。

4

2 に答える 2

85

プリペアドステートメントを使用してこれを行う必要があります。何かのようなもの:

SET @s = CONCAT('select * from ', @Cat, ' where ID = ', @ID_1); 

PREPARE stmt1 FROM @s; 
EXECUTE stmt1; 
DEALLOCATE PREPARE stmt1; 
于 2012-01-10T20:25:24.320 に答える
-5

私は何時間ものデバッグの後にこの解決策を得ました

私が添付した画像は、mysqlに対して100%機能します

于 2020-04-06T19:40:52.277 に答える