Syntax error in MySQL Using LIKE in stored Procedure – 在MySQL的 Stored Procedure 上使用Like 出現語句錯誤

今天嘗試在MySQL上寫一個Stored procedure
上面會用到 “LIKE“這一個Operator
這個SQL 是用來查詢 在Table上的 Description field 有沒有和 在Stored Procedure 上 傳送過來 以 這個parameter 開始或結尾的 記錄

SELECT *
FROM localfood_data_tbl
WHERE description LIKE '%'+ var_Description+ '%';

當我儲存這個Stored procedure 時.. 卻出現以下的錯誤
SQL Error (1064): 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 ‘ + var_Description +’%’;”
SQL Error (1064): 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 ' + var_Description +'%';
我十分肯定這個語句在MSSQL上是沒有問題的

當我上網reseach 了一會之後發現..
這是MySQL的 語句問題
如果想把分開的文字串連在一起的話
MSSQL可以使用

SELECT '文字1' + '文字2'

但是在MySQL 上卻需要使用CONCAT 這一個功能
E.G.

SELECT CONCAT('文字1', '文字2')

最後我的SQL 變成了這樣子

SELECT *
FROM localfood_data_tbl
WHERE description LIKE  CONCAT('%', var_Description,'%')

Hope you find it useful

Leave a Reply