【问题标题】:replace number in column with corresponding string using MySql使用 MySql 将列中的数字替换为相应的字符串
【发布时间】:2021-03-27 19:25:07
【问题描述】:

获取 |A|test1,test3| 的 SQL 查询从这两个表A1,A2 A1

| permission | user |
| ---------- | -----|
| 7,9        |  A   |
| 10,7       |  B   |

A2

| permission | fullname |
| ---------- | ---------|
| 7          |  test1   |
| 10         |  test2   |
| 9          |  test3   |

我需要一个能够为我提供用户、全名的查询 例子

|A|test1,test3|
 |B|test2,test1|

用对应的字符串替换数字

【问题讨论】:

  • 修复你的数据模型!不要在单个列中存储多个值!不要将数字存储在字符串中!正确声明外键约束!

标签: mysql sql mysql-python


【解决方案1】:

您可以使用find_in_set()

SELECT user,group_concat(fullname) as fullname
FROM
  t1 LEFT JOIN t2
  ON FIND_IN_SET(t2.permission,t1.permission)
  group by user

【讨论】:

    【解决方案2】:

    你也可以像下面这样使用:

    Select user,group_concat(fullname) as fullname
      From A1 join A2 on concat(',',A2.permission,',') 
                         like concat(concat('%,',A1.permission,',%')
    Group by user;
    

    【讨论】:

      猜你喜欢
      • 2021-08-02
      • 2019-06-06
      • 1970-01-01
      • 2013-11-02
      • 2023-02-14
      • 2023-03-26
      • 2022-11-12
      • 2021-03-11
      • 2020-08-31
      相关资源
      最近更新 更多