【发布时间】:2014-01-10 09:19:09
【问题描述】:
我在下面使用了动态获取表名并获取搜索关键字的存储过程。
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `GetTableLength`(IN TABLE_NAME VARCHAR(100),
IN SEARCH VARCHAR(150)) BEGIN IF (SEARCH = '') THEN
SET @query = CONCAT('select count(*) as total from ',TABLE_NAME); ELSE
SET @query = CONCAT('select count(userId) as total from ',TABLE_NAME, ' WHERE userName like ', SEARCH); END IF; PREPARE stmt3
FROM @query; EXECUTE stm3; END
当我像下面这样调用上述程序时。
CALL GetTableLength('usertbl', 'kisan')
这里,kisan 是一个搜索关键字。
然后出现以下错误。怎么了?
错误代码:1054。“where 子句”中的未知列“kisan”
【问题讨论】: