[英]SQL Stored Procedure String Search via Passed Parameter and Using 'LIKE' query
我正在尝试创建一个存储过程,它将使用用户在调用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$$
CREATE PROCEDURE `test`.`SEARCH_STUDENT`(in _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))
其他明智的将无法正常显示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.