【问题标题】: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%'