我正在尝试查询我的LIKE可以匹配行中的任何字段。
换句话说,我不想显式设置列名以匹配每个LIKE条件。
所以,就像这样:
SELECT * FROM mytable WHERE any_field_value LIKE 'str%'
不喜欢这样:
SELECT * FROM mytable WHERE col_a LIKE 'str%' OR col_b LIKE 'str%'
等等。
当然,这不是一个不常见的请求?有人能告诉我光明吗?
答案 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)