2015-10-20 76 views
0

以下是不起作用的簡化查詢。Concat選擇類似於%string的查詢%

SET @abc = CONCAT('%','string','%'); 

SET @query = CONCAT('SELECT * 
FROM table 
WHERE column LIKE ',@abc); 

PREPARE stmt FROM @query; 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt; 

我需要使用CONCAT和SELECT,因爲在真正的查詢中有很多其他變量。當我在WHERE子句使用一些簡單的COLUMN = XYZ

房地產查詢工作正常。但是,沒有什麼工作,當我嘗試使用LIKE%XYZ% ...

+0

讓我猜測,你用'string''替代另一個列名嗎? – lad2025

+0

你需要的功能是「動態SQL」 - http://stackoverflow.com/questions/190776/how-to-have- dynamic-sql-in-mysql-stored-procedure –

回答

1

使用方法如下

SET @abc = CONCAT('"%','string','%"'); 

SET @query = CONCAT('SELECT * 
FROM table 
WHERE column LIKE ',@abc); 

PREPARE stmt FROM @query; 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt; 

檢查我已經加入「,以示@abc像 」字符串%%的第一行「

+0

這是否解決了你的問題? –