私はテーブルを持っていますbooks
。
+-------+-----------+------------+
| serial| book_name | book_author|
+-------+-----------+------------+
| 1 | Star Wars | 1 |
| 2 | Java | 2 |
| 3 | Alimals | 3 |
| 4 | Star Wars | 1 |
+-------+-----------+------------+
SELECT にストアド プロシージャを使用したいbook_name
。
私のストアドプロシージャは次のようになります。
USE books;
DELIMITER //
CREATE PROCEDURE doselect(col VARCHAR(50), tab VARCHAR(50), cond INT(5))
BEGIN
SET @x = NULL;
SET @col = col;
SET @tab = tab;
SET @cond = cond;
SET @x = (SELECT @col FROM @tab WHERE b_id = @cond);
END //
DELIMITER ;
それから私はそれを呼びます:
CALL doselect('book_name', 'books', 3)
しかし、IDは機能しません。変数は表示されません@tab
。間違いは次のとおりです。
テーブルbooks.@tabは存在しません。
SELECT 条件の次のバリアントも使用しました。
SET @x = (SELECT 'col' FROM 'tab' WHERE b_id = 'cond');
同じ間違いですが、今はありません@
:
テーブルbooks.tabが存在しません。
そのような場合に変数を正しく渡す方法は? 変数を表示するにはどうすればよいですか?
ありがとうございました。