Синтаксическая проблема MySQL с CONCAT AND LIKE в хранимой процедуре

У меня есть хранимая процедура для получения идентификатора. Это concat — это фамилия с именем «Stone, Cold» и сравнивается с переданным _fullname, которое, когда я выдаю var_dump

Строка (13) Камень, Холодный

Это должно дать идентификатор

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, он работает отлично, но не работает в процедуре. Я уверен, что проблема в синтаксисе хранимой процедуры.

0

Решение

Пытаться:

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 demo

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]