首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拆分并加入Where子句MySql

拆分并加入Where子句MySql
EN

Stack Overflow用户
提问于 2020-10-02 11:34:10
回答 1查看 47关注 0票数 1

我有两张桌子。

代码语言:javascript
复制
Table First

+----+---------+-------+
| ID | Name    | URl   |
+----+---------+-------+
| 1  | Product | http1 |
+----+---------+-------+
| 2  | Cheif   | http2 |
+----+---------+-------+
| 3  | Client  | http3 |
+----+---------+-------+

Table Second
+-----+----------------+-------------+
| ID  | Dashboard      | Definition  |
+-----+----------------+-------------+
| 1.1 | Product,Cheif  | Overview    |
+-----+----------------+-------------+
| 2.1 | Cheif          | malpractice |
+-----+----------------+-------------+
| 3.1 | Client,Product | Vanity      |
+-----+----------------+-------------+

我期待着产出

代码语言:javascript
复制
+----+----------------+-------------+-------------+
| ID | Dashboard      | Definition  | Url         |
+----+----------------+-------------+-------------+
| 1  | Product,Cheif  | Overview    | http1,http2 |
+----+----------------+-------------+-------------+
| 2  | Cheif          | malpractice | http2       |
+----+----------------+-------------+-------------+
| 3  | Client,Product | Vanity      | http3,http1 |
+----+----------------+-------------+-------------+

我尝试使用if、locate、substring然后创建视图进行拆分,结果发现别名不能在where子句上使用。

拆分逻辑如下所示。

代码语言:javascript
复制
SELECT IF(
        LOCATE(‘,’, `dashboard`) > 0,
        SUBSTRING(`dashboard`, 1, LOCATE(‘,’, `dashboard`) - 1),
        `u_dashboard`
    ) AS memberfirst,
    IF(
        LOCATE(‘,’, `dashboard`) > 0,
        SUBSTRING(`dashboard`, LOCATE(‘,’, `dashboard`) + 1),
        NULL
    ) AS memberlast
FROM `table`;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-02 11:42:56

您可以使用FIND_IN_SET()连接表并使用GROUP_CONCAT()进行聚合:

代码语言:javascript
复制
select t2.id, t2.dashboard, t2.definition,
       group_concat(t1.url order by find_in_set(t1.name, t2.dashboard)) url
from TableSecond t2 left join TableFirst t1
on find_in_set(t1.name, t2.dashboard)
group by t2.id, t2.dashboard, t2.definition

演示

结果:

代码语言:javascript
复制
>  id | dashboard      | definition  | url        
> --: | :------------- | :---------- | :----------
> 1.1 | Product,Cheif  | Overview    | http1,http2
> 2.1 | Cheif          | malpractice | http2      
> 3.1 | Client,Product | Vanity      | http3,http1
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64170845

复制
相关文章

相似问题

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