簡體   English   中英

MySql存儲過程中如何一起使用計數和喜歡子句?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM