我们经常在使用数据库都是行转列,或列转行,这都比较常见,但是工作中遇到了一个问题,在mysql数据库中存在一个字段,存的是一个全路径,并且各级路径ID以逗号隔开,现在需要用逗号,将一列拆分成多列显示,也就是列转列,需要怎么做呢?
首先,模拟一条数据出来:
SELECT '100015011,546,100011239,695,6915038369' COL;
接下来,需要将这一列数据以逗号分隔拆分成5列,需要使用SUBSTRING_INDEX函数。先介绍下这个函数的用法:
SUBSTRING_INDEX(str,delim,count) -- str: 被分割的字符串; delim: 分隔符; count: 分割符出现的次数。
cout 为整数标识从左边开始,count为负数从右边开始。
接下来具体实现:
SELECT
B.COL,
SUBSTRING_INDEX( SUBSTRING_INDEX( B.COL, ',', 1 ), ',', - 1 ) one,
SUBSTRING_INDEX( SUBSTRING_INDEX( B.COL, ',', 2 ), ',', - 1 ) two,
SUBSTRING_INDEX( SUBSTRING_INDEX( B
mysql
_
一列
分多行操作,在一个表里的几行数据需要分
拆成
单行存储到一行
中
,
mysql
_
一列
分多行操作,在一个表里的几行数据需要分
拆成
单行存储到一行
中
mysql
_
一列
分多行操作,在一个表里的几行数据需要分
拆成
单行存储到一行
中
mysql
_
一列
分多行操作,在一个表里的几行数据需要分
拆成
单行存储到一行
中
有时候可能数据库存的是一个汇总的字段,例如表A,有一类型名称为identifier,根据0和1代表不同含义来区分值,比如0代表私有,1代表公有,值存储在name字段里,这时候想获得这样的结果:id, 私有的名字, 共有的名字三列字段,我们可以在查询时候用 IF 语句来实现。
SELECT cam_id, IF(identifier = 0, name, null) as private, if...
可以
使用
MySQL
的 PIVOT 函数来实现将某
一列
形成
多列
。
使用
PIVOT 函数需要先对数据进行分组,然后将某
一列
的值作为新的列名,其余列的值作为新列的值。
例如,假设有一个名为 sales 的表,包含三列:product_name(产品名称)、region(地区)和 sales_volume(销售量)。如果要将地区形成
多列
,可以
使用
以下查询:
SELECT product_name,
CREATE TABLE `testtag` (
`postid` int(11) NOT NULL AUTO_INCREMENT,
`likes` int(100) DEFAULT NULL,
`replay` int(100) DEFAULT NULL,
`share` int(100) DEFAULT NULL,
`tagid` varchar(220) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (`p
I have column like this+--------------------------+| Marks |+--------------------------+|Maths-80,Phy-100,Che-99 ||Maths-90,Phy-60 ||Phy-82,Che-65 ||Che-90 ...
我试图
拆分
字段(在某些分隔
符
处,在下面的示例
中
使用
';')并将
拆分
结果插入表
中
。我想要做的是在下面的表格
中
说明。
MySQL
-
拆分
字段并将结果插入列注:绝不会有由分号分隔超过3个值(;)在第一行,但可以有少于3
mysql
> SELECT * FROM new;+-------+------+------+------+| first | a | b | c |+-------+------...
SELECT
substring_index( substring_index( t.best_response, ',', b.help_topic_id + 1 ), ',', - 1 ) FROM m_require t
JOIN
mysql
.help_topic b
ON b.help_topic_id < ( LENGTH( t.best_response ) - LENGTH( ...
MySQL
行
转
列,按指定字
符
分割字
符
串字段,在 in(
中
使用
)
与
Mysql
行
转
列区别:行
转
列要知道列的内容,而这个不用,只需知道拼接的字
符
就行了
有时候我们的
Excel
表格里只有
一列
数据,如果需要打印出来的话,就是下面这样子的:浪费纸不说,还很丑,这样打印的表格你真的敢拿给老板看吗?对于这样的数据,就需要把
一列
平均分配到
多列
,通常有两种方法来实现,先来看看操作的方法:一、操作法将
一列
数据变成
多列
步骤1:先设计好需要
拆分
为几列,然后将标题手动做好;本例
中
计划
拆分
8列。步骤2:在c2单元格输入a2,向右拉,
Excel
会自动为我们填充到a9。步骤...
Mysql
笔试题之单列
拆分
多列
查询并合并显示
事情是这样的:某天在开发群里看同行们在聊天,有一位同行发了一个
mysql
笔试题。抱着试一试的心态研究了几个小时。话不多说直接上题。
有学生表,结构和数据如下图:
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`course`