1

我有表 t1 sql 记录

user_id    tags
  1     <tag1><tag2>
  1     <tag1><tag3>
  2     <tag2><tag3>

我想将这些记录分成多个记录并对其进行区分。我想知道如何将基于标签<>的记录划分到另一个表t2中

我需要在表 t2 中这样的输出

user_id    tags
  1     <tag1> 
  1     <tag2>
  1     <tag1>
  1     <tag3>
  2     <tag2>
  2     <tag3>

你们可以给我一些sql查询吗?

4

1 回答 1

0

尝试这个:

SELECT
    user_id,
    SUBSTRING_INDEX(tags,'<',2) as tag
FROM
    t1
UNION ALL
SELECT
    user_id,
    SUBSTRING_INDEX(tags,'>',-2) as tag
FROM
    t1

更新:对于不同的值,您可以使用:

SELECT
    user_id,
    tag
FROM (
    SELECT
        user_id,
        SUBSTRING_INDEX(tags,'<',2) as tag
    FROM
        t1
    UNION ALL
    SELECT
        user_id,
        SUBSTRING_INDEX(tags,'>',-2) as tag
    FROM
        t1
) as tmp
    GROUP BY
        user_id,
        tag
于 2013-05-22T07:44:03.520 回答