2011-04-03 57 views
0

可能重复:
MYSQL query for searching through ALL the fields?
MySQL - Search in all fields from every table from a database有没有办法在单个mysql查询中搜索所有字段?

我有一台28场和一个选项我想给用户是搜索在其所有领域的每一个条目。 因此,而不是写是这样的:

SELECT * FROM table WHERE field1 LIKE testfield OR field2 LIKE testfield OR field3 LIKE testfield 
OR field4 LIKE testfield OR ... etc 

我想编写这样的事:

SELECT * FROM table WHERE * LIKE testfield; 

这不工作,所以我不知道是否有另一种语法或功能犯规存在吗?

+1

同样的问题http://stackoverflow.com/questions/3797906/mysql-query-for-searching-through-all-the-fields链接到另一个类似的问题... – manji 2011-04-03 20:41:01

+1

http://stackoverflow.com/问题/ 639531/mysql-search-in-all-fields-from-every-table-from-a-database – Spyros 2011-04-03 20:41:42

+0

@manji - 在这种情况下投票结束为重复 – ChrisF 2011-04-03 20:43:19

回答

0

在SQL中没有对这种类型查询的可移植支持。最好的办法是创建另一个字符串/ varchar列,并将其他列转换为一个字符串,然后在其上进行搜索。

SQL Server会支持contains keyword

SELECT Name, Color FROM Production.Product 
WHERE CONTAINS((Name, Color), 'Red'); 

但是,如果你想成为便携,你有额外的列更好。

+0

这会强制进行全表扫描。 ] – Layke 2011-04-03 20:43:30

相关问题