【问题标题】:SQL: Using LIKE, return row if search matches any value in that rowSQL:使用 LIKE,如果搜索匹配该行中的任何值,则返回该行
【发布时间】:2011-10-07 10:13:30
【问题描述】:

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

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

所以,像这样:

SELECT * FROM mytable WHERE any_field_value LIKE 'str%'

不是这样的:

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

等等。

当然,这不是一个不寻常的请求?谁能给我看灯?

【问题讨论】:

    标签: mysql sql select sql-like


    【解决方案1】:

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

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

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

    编辑: 全文搜索在 mysql 中也可用。我不清楚 * 是否可以与它一起使用。

    【讨论】:

    • 感谢@Telerian,我正在使用 MySQL...但由于我对动态 SQL 或全文索引知之甚少(任何事情),我将坚持使用“不能轻松完成”的回答。 :)
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-02
      • 2018-02-12
      • 2023-02-25
      • 2016-04-06
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      相关资源
      最近更新 更多