如何使用动态SQL语句在MySQL数据库和不使用会话变量?
现在我有这样的代码(在MySQL存储过程):
(...) DECLARE TableName VARCHAR(32); SET @SelectedId = NULL; SET @s := CONCAT("SELECT Id INTO @SelectedId FROM ", TableName, " WHERE param=val LIMIT 1"); PREPARE stmt FROM @s; EXECUTE stmt; DEALLOCATE PREPARE stmt; IF ISNULL(@SelectedId) THEN (...)
但我想只使用局部变量,这意味着我想与开始此过程:
DECLARE TableName VARCHAR(32); DECLARE s VARCHAR(1024); DECLARE SelectedId INTEGER UNSIGNED; (...)
并且不使用的@字符的任何地方。 有没有办法做到这一点?