首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mysql查询,多个哪里的条件,哪个字段匹配?

Mysql查询,多个哪里的条件,哪个字段匹配?
EN

Stack Overflow用户
提问于 2018-11-20 04:43:03
回答 3查看 89关注 0票数 0

给出如下形式的mysql查询:

代码语言:javascript
复制
SELECT *
FROM table
WHERE field1 LIKE '%foo%'
    OR field2 LIKE '%bar%'
    OR field3 LIKE '%foobar%'

哪种方式是标记“匹配字段”的最佳方式?

例如:

代码语言:javascript
复制
+----+--------+--------+----------+
| ID | field1 | field2 |  field3  |
+----+--------+--------+----------+
| 01 |   foo  |   xxx  |    xxx   |
+----+--------+--------+----------+
| 02 |   xxx  |12bar21 |xxfoobarxx|
+----+--------+--------+----------+
| 03 |   f2o  |   bar  |    yxz   |
+----+--------+--------+----------+

在这里,每一个记录都会被匹配--现在我想知道每个记录匹配的字段。(所以对于ID 01是field1,对于ID 02是field2,field3,对于ID 03是field2)

谢谢

EN

Stack Overflow用户

发布于 2018-11-20 05:40:30

使用 CONCATCASE

您正在寻找以下结果,但我知道您希望用逗号或任何其他符号分隔字段,因为我现在无法访问mysql,所以我认为您可以自己处理

代码语言:javascript
复制
SELECT *,
    CONCAT(CASE WHEN field1 LIKE '%foo%' THEN 'field1' ELSE NULL END,
            CASE WHEN field2 LIKE '%bar%' THEN 'field2' ELSE NULL END,
            CASE WHEN field3 LIKE '%foobar%' THEN 'field3' ELSE NULL END) AS macthed_column
FROM youtable
WHERE field1 LIKE '%foo%'
    OR field2 LIKE '%bar%'
    OR field3 LIKE '%foobar%'

输出

代码语言:javascript
复制
ID  field1  field2  field3      macthed_column
1   foo     xxx     xxx         field1
2   xxx     12bar21 xxfoobarxx  field2field3
3   f2o     bar     yxz         field2
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53386368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档