mysql - SQL 存储过程字符串搜索通过传递的参数和使用 'LIKE' 查询

标签 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 '%'+_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

我从谷歌得到的是要搜索的带有固定字符串的样本。我的取决于用户将在文本框中输入的内容。非常感谢高级方面的任何帮助。

最佳答案

我现在明白了。感谢此链接。

http://www.sitepoint.com/forums/showthread.php?620319-MySQL-Stored-Procedure-LIKE-and-a-string-variable-the-combination-don-t-work

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/

相关文章:

mysql - 无法将具有空值的制表符分隔数据导入 mysql 表

mysql - 如何获得任意连续范围内的最大值

python - 为什么 Haystack 返回非词干结果?

mysql - 如果父行在 mysql 中被删除,如何自动删除所有引用行?

c# - 两个字符串之间的相关百分比

search - 海布里斯 : Use same field for search and facet

mysql - #1054 - 'a.ArtikelID' 中的未知列 'on clause'

java - 如何在即将推出的 jFrame 的 TextFields 中预先记录值?

sql - 关系型数据库查询问题

python - 如何更新最新的sqlite3帖子?