2012-07-23 37 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');