SQL:使用LIKE,如果搜索匹配该行中的任何值,则返回行

时间:2011-07-18 05:44:36

标签: mysql sql select sql-like

我正在尝试查询我的LIKE可以匹配行中的任何字段。

换句话说,我不想显式设置列名以匹配每个LIKE条件。

所以,就像这样:

SELECT * FROM mytable WHERE any_field_value LIKE 'str%'

喜欢这样:

SELECT * FROM mytable WHERE col_a LIKE 'str%' OR col_b LIKE 'str%'

等等。

当然,这不是一个不常见的请求?有人能告诉我光明吗?

2 个答案:

答案 0 :(得分:2)

实际上这根本不是真的。假设您已设置全文索引,则可以完成此操作。 再一次,假设我们正在处理sql server。

http://msdn.microsoft.com/en-us/library/ms142488.aspx

我应该指出,由于在链接文档中不是很清楚,您可以指定*而不是列名,以便搜索表中的所有全文索引列。

修改 mysql中也提供全文搜索。我不清楚*是否可以与它一起使用。

答案 1 :(得分:1)

只能使用动态SQL完成(除非使用全文索引)。

在您这样做之前,我建议您阅读:The Curse and Blessings of Dynamic SQL(假设是SQL Server)