【问题标题】:how to do a select on like values from multiple columns in sql如何对sql中多列的相似值进行选择
【发布时间】:2009-10-12 14:07:25
【问题描述】:

我有两个带列的表:

Genres  
  ID  
  genre

Adjectives
  ID
  adjective_title

我需要使用like 语法从两个表列返回匹配值。

例如,如果 ep 是使用 like 输入的值,则结果将如下所示:

result_column:
--------------
epiphonic -- (from genres table)
epic      -- (from adjectives table)

等等。 . .

我很确定我需要使用子查询来返回结果。

【问题讨论】:

    标签: mysql sql select sql-like


    【解决方案1】:

    试试这个

    SELECT genre AS result
    FROM genres
    WHERE genre LIKE '%ep%'
    UNION
    SELECT adjective_title AS result
    FROM 
      adjectives
    WHERE adjective_title LIKE '%ep%'
    

    联合将消除每个查询中的重复项,对每个查询使用 UNION ALL。

    【讨论】:

      【解决方案2】:

      您可以在没有子选择的情况下执行此操作,但在大型表上不会很快,通过使用 concat 构建您使用 like 运算符的字符串:

      select g.ID, g.genre, a.adjective_title from Genres g, Adjectives a where
      concat(g.genre, a.adjective_title) like '%epic%'
      

      【讨论】:

        猜你喜欢
        • 2023-01-18
        • 2014-09-08
        • 2018-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-04
        • 2013-05-24
        相关资源
        最近更新 更多