2012-07-23 70 views
1

我感興趣的是根據給定的字符串搜索數據庫條目。針對字符串的MySQLquery數據庫

事情是這樣的:

SELECT * FROM TABLE WHERE %table_column% LIKE %STRING% 

是否有可能與MYSQL做到這一點?

謝謝

+0

你的意思是你要搜索的所有列相同的字符串? – BugFinder 2012-07-23 10:08:50

回答

1

不,你不能通配列名。你可以這樣

SELECT * FROM TABLE 
WHERE col1 LIKE %STRING% 
or col2 LIKE %STRING% 
or col3 LIKE %STRING% 
1

指定它們可以使用MySQL的動態裏面大多是存儲過程來實現:

CREATE PROCEDURE sp_test 
(
arg_column_name VARCHAR(255) 
,arg_filter VARCHAR(255) 
) 
BEGIN 

SET @query1 = CONCAT(' 
     SELECT * 
     FROM table_name a 
     WHERE a.',arg_column_name,' LIKE "%',arg_filter,'%"' 
     ); 
     PREPARE stmt FROM @query1; EXECUTE stmt; DEALLOCATE PREPARE stmt; 
END; 

CALL sp_test('column_name','filter_val');