簡體   English   中英

SQL存儲過程字符串通過傳遞參數搜索並使用“LIKE”查詢

[英]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

我從谷歌獲得的是帶有固定字符串的樣本。 我的取決於用戶將在文本框中輸入的內容。 非常感謝您提供的任何幫助。

我現在明白了。 感謝這個鏈接。

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$$
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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM