簡體   English   中英

存儲過程中CONCAT和LIKE的MySQL語法問題

[英]MySQL Syntax Issue with CONCAT AND LIKE in Stored Procedure

我有一個存儲過程來獲取ID。 它以名字“ Stone,Cold”連接姓氏,並與傳遞的_fullname進行比較,當我var_dump給

弦(13)石頭,冷

它應該給出一個ID

IF NOT ISNULL(_fullname) THEN
    SET _fullname   = TRIM(_fullname);
    SET clause = CONCAT( clause , ' AND CONCAT(c.lname, ', ', c.fname) LIKE   CONCAT('%',_fullname,'%')');
END IF;

當我在MySQL中嘗試相同的查詢時,它工作正常,但在過程中不起作用。 我確定問題是存儲過程中的語法。

嘗試:

DELIMITER //

DROP PROCEDURE IF EXISTS `sp_test`//

CREATE PROCEDURE `sp_test`(IN `_fullname` VARCHAR(20))
BEGIN
  DECLARE `clause` VARCHAR(500) DEFAULT '';
  IF NOT ISNULL(`_fullname`) THEN
    SET `_fullname` := TRIM(`_fullname`);
    SET `clause` := CONCAT(`clause`, ' AND CONCAT(`c`.`lname`, '', '', `c`.`fname`) LIKE ''', '%', `_fullname`, '%''');
  END IF;
  SELECT `clause`;
END//

DELIMITER ;

SQL Fiddle演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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