Mysql 通过传递参数并使用';比如';查询
我正在尝试创建一个存储过程,该过程将使用用户在调用SP时传递的参数来搜索我的表。我希望使用“like”查询来完成此操作。到目前为止,这是我得到的Mysql 通过传递参数并使用';比如';查询,mysql,sql,search,stored-procedures,Mysql,Sql,Search,Stored Procedures,我正在尝试创建一个存储过程,该过程将使用用户在调用SP时传递的参数来搜索我的表。我希望使用“like”查询来完成此操作。到目前为止,这是我得到的 DROP PROCEDURE IF EXISTS `SEARCH_STUDENT`$$ CREATE PROCEDURE `test`.`SEARCH_STUDENT`(_textInput VARCHAR(10)) BEGIN SELECT * FROM records WHERE `lastname` 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
我从谷歌得到的是带有固定字符串的样本,需要搜索。我的取决于用户在文本框中输入的内容。非常感谢您在advanced中提供的帮助。我现在就知道了。感谢这个链接 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$$
投入
\`test\`.\`SEARCH_STUDENT\`(in _textInput VARCHAR(10))
另一个wise out将不会正确显示,因为存储过程是一个语句SP,所以您可以舍弃
BEGIN…END
块,而无需更改分隔符
\`test\`.\`SEARCH_STUDENT\`(in _textInput VARCHAR(10))