[英]How Use Count and Like Clause Together in MySql Stored Procedure?
我使用了以下存儲過程,該過程動態獲取表名並獲取搜索關鍵字。
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”
嘗試如下使用:
set @query = CONCAT("select count(userId) as total from ",table_name, " WHERE userName like '", search,"'");
即使您可以嘗試:
set @query = CONCAT("select count(userId) as total from ",table_name, " WHERE userName like '%", search,"%'");
您需要在帶有引號''
類似語句中傳遞搜索參數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.