为啥不能是
北京 shanghai.com 1
上海 beijing.com 2
我的意思是, 你的题目缺少条件, 并不能确认 北京 beijing.com 1 就一定是一组.
把你的条件添加上,
比如 它们有一个共同的属性相同.
已经在问题上修改
@new_ITP: 你的意思是 按照 ID 排序 3个 一组?
中间会有没有 不连续的?
@过于执著: 有QQ吗,或者加我QQ:962990887
因为这里截不了图
@new_ITP:
SELECT SUBSTRING(VAL_, 1, LOCATE(VAL_, ',', 1)) AS 'URL', SUBSTRING(VAL_, LOCATE(VAL_, ',', 1) + 1) AS '排序' FROM -- 按 逗号 分割 截取字符串 得到 URL 部分 和 剩余部分(即 排序部分) (具体 INDEX 可能不对, 自己调整) (SELECT SUBSTRING(VAL_, 1, LOCATE(VAL_, ',', 1)) AS '城市', SUBSTRING(VAL_, LOCATE(VAL_, ',', 1) + 1) AS VAL_ FROM -- 按 逗号 分割 截取字符串 得到 城市部分 和 剩余部分 (具体 INDEX 可能不对, 自己调整) (SELECT GROUP_CONCAT( FIELDVALUE ORDER BY ID SEPARATOR ',' ) AS VAL_ FROM -- 用 GROUP_CONCAT 函数 把 FIELDVALUE 字段 合并起来, 按 ID 排序, 用 逗号 分割. (SELECT ID, FLOOR( (ID - 1) / 3 ) AS ID_, FIELDVALUE FROM -- 把 ID 分组 转换成 相同的值 (这里用了 除以 3 取整) (如果不连续用 ROWNUM) (如果有其他字段能够 将 1,2,3 归为一组那么更好) (SELECT T1.ID, T2.FIELDNAME, T1.FIELDVALUE FROM ACTCOMMUNITYDB.RM_CONTENTVALUE T1 INNER JOIN ACTCOMMUNITYDB.RM_CONTENTFIELD T2 /* WHERE */ ON (T1.FIELDID = T2.ID)) --原语句 ) GROUP BY ID_))
@过于执著: 抱歉,由于业务逻辑复杂,所以理解错意思了,题目已经重新修改好了,麻烦看看
@过于执著: 已经解决了
@new_ITP: 有 ContentID 这么好一字段不拿出来 (何必让我用 ID / 3),
GROUP_CONCAT 时按 FIELDVALUE 排序即可.
@过于执著: 不好意思,逻辑有点复杂,理解错意了
@过于执著: 对的,我自己已经写好了,经过从昨晚到现在研究行转列,contentID一弄出来就好办了
现在回头再看这个问题,当时好挫
为啥不能是
北京 shanghai.com 1
上海 beijing.com 2
我的意思是, 你的题目缺少条件, 并不能确认 北京 beijing.com 1 就一定是一组.
这个回答我现在才注意到并且明白了。。。