我正在尝试创建一个存储过程,它将使用用户在调用 SP 时传递的参数来搜索我的表。我想为此使用“LIKE”查询。到目前为止,这就是我得到的。
DROP PROCEDURE IF EXISTS `SEARCH_STUDENT`$$
CREATE
PROCEDURE `test`.`SEARCH_STUDENT`(_textInput VARCHAR(10))
BEGIN
SELECT * FROM records WHERE `lastname` LIKE '%'+_textInput+'%';
END$$
但是我得到这个错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@Search varchar(10);
SET @Search=_textInput;
SELECT * FROM records WHERE `last' at line 10
我从谷歌得到的是要搜索的带有固定字符串的样本。我的取决于用户将在文本框中输入的内容。非常感谢高级方面的任何帮助。
最佳答案
我现在明白了。感谢此链接。
sql CONCAT 函数就是答案。这是我的代码:
CREATE
PROCEDURE `test`.`SEARCH_STUDENT`(_textInput VARCHAR(10))
BEGIN
-- sELECT * FROM records WHERE `lastname` LIKE '%' + _textInput;
SELECT * FROM records WHERE `lastname` LIKE CONCAT('%',_textInput,'%');
END$$
关于mysql - SQL 存储过程字符串搜索通过传递的参数和使用 'LIKE' 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17129342/