在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

MySQL中怎么实现行转列操作

123次阅读
没有评论

共计 2121 个字符,预计需要花费 6 分钟才能阅读完成。

自动写代码机器人,免费开通

本篇文章给大家分享的是有关 MySQL 中怎么实现行转列操作,丸趣 TV 小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着丸趣 TV 小编一起来看看吧。

表的基本结构

改造前表结构:

CREATE TABLE orders(

orders_id INT NOT NULL AUTO_INCREMENT COMMENT 订单 ID ,

good_ids VARCHAR(200) NOT NULL COMMENT 商品 ID 字符串 ,

PRIMARY KEY(orders_id)

);

INSERT INTO orders VALUES(NULL, 1,2,3,4,5

INSERT INTO orders VALUES(NULL, 11,12,13,14,15

INSERT INTO orders VALUES(NULL, 21,22,23,24,25

改造后表结构:

— orders 表不变

CREATE TABLE orders(

orders_id INT NOT NULL AUTO_INCREMENT COMMENT 订单 ID ,

good_ids VARCHAR(200) NOT NULL COMMENT 商品 ID 字符串 ,

PRIMARY KEY(orders_id)

);

— 新增订单商品表

CREATE TABLE order_goods(

order_goods_id INT NOT NULL AUTO_INCREMENT COMMENT 订单商品 ID ,

orders_id INT NOT NULL COMMENT 订单 ID ,

goods_id INT NOT NULL COMMENT 商品 ID ,

PRIMARY KEY(order_goods_id)

);

实现行转列

这边我们需要借助一个有着 ID 连续的表 (mysql.help_topic) 来做关联,以至于能够划分出商品 ID。

SELECT o.orders_id,

SUBSTRING_INDEX(SUBSTRING_INDEX(o.good_ids, , , h.help_topic_id), , , -1)

FROM orders AS o

JOIN mysql.help_topic AS h

ON h.help_topic_id = -= where= help_topic_id= 0

ORDER BY o.orders_id;

分解 SQL 进行解释

这边我们的目的是获得商品 ID 字符串中第二个商品 ID。

使用 逗号(,) 分割 good_ids 查看前两个元素(good_id):

SELECT o.orders_id,

SUBSTRING_INDEX(o.good_ids, , , 2)

FROM orders AS o;

+———–+————————————-+

| orders_id | SUBSTRING_INDEX(o.good_ids, , , 2) |

+———–+————————————-+

| 1 | 1,2 |

| 2 | 11,12 |

| 3 | 21,22 |

+———–+————————————-+

通过上面获得的前两个元素的字符串,再次进行 逗号(,) 分割,并获得最后一个元素。

SELECT o.orders_id,

SUBSTRING_INDEX(

SUBSTRING_INDEX(o.good_ids, , , 2),

, ,

-1

) AS good_id

FROM orders AS o;

+———–+———+

| orders_id | good_id |

+———–+———+

| 1 | 2 |

| 2 | 12 |

| 3 | 22 |

+———–+———+

最终的 SQL 只是将指定的第二个元素,变成动态改变的。而动态的改变的数字就是通过关联 mysql.help_topic 来实现的

小提示:这里使用 mysql.help_topic 的原因是它有从 0 到 629 连续不断的 help_topic_id。当然你也可以自己创建一个表并且插入连续不断的数据来作为关联表。

SELECT o.orders_id,

SUBSTRING_INDEX(SUBSTRING_INDEX(o.good_ids, , , h.help_topic_id), , , -1) AS good_id

FROM orders AS o

JOIN mysql.help_topic AS h

ON h.help_topic_id = -= where= help_topic_id= 0

ORDER BY o.orders_id;

+———–+———+

| orders_id | good_id |

+———–+———+

| 1 | 1 |

| 1 | 2 |

| 1 | 3 |

| 1 | 4 |

| 1 | 5 |

| 2 | 15 |

| 2 | 11 |

| 2 | 12 |

| 2 | 13 |

| 2 | 14 |

| 3 | 22 |

| 3 | 23 |

| 3 | 24 |

| 3 | 25 |

| 3 | 21 |

+———–+———+

以上就是 MySQL 中怎么实现行转列操作,丸趣 TV 小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注丸趣 TV 行业资讯频道。

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计2121字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产互换人妻xxxx69 | 大黄一级片 | 激情总合网 | 91网站在线免费观看 | 欧美人妻日韩精品 | 男男19禁啪啪无遮挡免费 | 一个添下面两个吃奶把腿扒开 | 国产高清一区二区三区免费视频 | 国产精品亚洲а∨无码播放不卡 | 亚洲av人无码激艳猛片 | 亚洲av成为人电影 | 久热re国产手机在线观看 | 在线а√天堂中文官网 | 亚洲日韩国产精品第一页一区 | 精品人无码一区二区三区 | 99热这里只有精品首页 | 高清性做爰免费无遮挡网站 | 中文在线√天堂 | 一级毛片免费视频日本 | 2019精品国产品免费观看 | 性xxxx欧美老妇胖老太性多毛 | 欧美丰满大乳高跟鞋 | 免费人成在线观看视频播放 | 国产久热美女福利视频 | 国产精品好好热在线观看 | 色综合久久综合欧美综合图片 | 国产成人综合在线观看 | 小罗莉极品一线天在线 | 日韩a在线播放 | 国产精品手机免费 | 四虎永久免费地址 | 亚洲国产av无码精品无广告 | 欧美日韩色综合网站 | 久久国产精品女 | 免费观看成人毛片 | 七次郎华人最新线路 | 国产成人免费片在线视频观看 | 亚洲最大成人在线 | 一级看片免费视频囗交 | 国产首页| 欧美天天影院 |