您可以拆分/分解MySQL查询中的字段吗?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

您可以拆分/分解MySQL查询中的字段吗?

2020-05-10 18:41:55 321 1

我必须就一些学生的完成情况创建一份报告。每个学生都属于一个客户。这是表格(此问题的简化版)。

CREATE TABLE clients ( clientId int(10) unsigned NOT NULL auto_increment, clientName varchar(100) NOT NULL default '', courseNames varchar(255) NOT NULL default '' ) 该courseNames字段包含课程名称的逗号分隔字符串,例如“ AB01,AB02,AB03”

CREATE TABLE clientenrols ( clientEnrolId int(10) unsigned NOT NULL auto_increment, studentId int(10) unsigned NOT NULL default '0', courseId tinyint(3) unsigned NOT NULL default '0' ) courseId此处的字段是client.courseNames字段中课程名称的索引。因此,如果客户的名称courseNames是“ AB01,AB02,AB03”,而courseId注册的名称是2,则该学生在AB03中。

有什么办法可以对这些包含课程名称的表格进行单选吗?请记住,会有来自不同客户的学生(因此具有不同的课程名称,并非所有课程名称都是连续的,例如:“ NW01,NW03”)

基本上,如果我可以拆分该字段并从结果数组中返回单个元素,那将是我想要的。这就是神奇的伪代码的意思:

SELECT e.studentId, SPLIT(",", c.courseNames)[e.courseId] FROM ...

取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-05-10 18:42:11

    到目前为止,我想将那些逗号分隔的列表保留在我的SQL数据库中-充分了解所有警告!

    我一直认为它们比查找表有优势(查找表为标准化数据库提供了一种方法)。经过几天的拒绝,我看到了曙光:

    当在一个字段中使用逗号分隔的值时,使用查找表不会比丑陋的字符串操作引起更多的代码。 查找表允许使用本机数字格式,因此不能大于这些csv字段。虽然是更小。 所涉及的字符串操作在高级语言代码(SQL和PHP)中比较薄,但是与使用整数数组相比,开销很大。 数据库并不是人类可读的,并且像我所做的那样,试图坚持使用结构通常是愚蠢的,因为它们具有可读性/直接可编辑性。 简而言之,MySQL中没有本机SPLIT()函数是有原因的。来源:stack overflow

    0 0
相关问答

1

回答

RDS For MySQL 报错InvalidParameters.Malformed

2022-11-01 10:41:26 206浏览量 回答数 1

1

回答

【RDS】RDS for MySQL 连接数满,该如何处理?

2022-01-13 16:30:35 593浏览量 回答数 1

1

回答

【RDS】RDS MySQL数据文件占满磁盘空间导致出现“锁定中”状态,该如何处理?

2022-01-13 16:54:38 614浏览量 回答数 1

1

回答

RDS for MySQL 连接数满情况的处理

2022-01-07 14:38:49 1195浏览量 回答数 1

1

回答

RDS PostgreSQL同步至RDS MySQL中任务步骤的说明是什么?

2021-12-13 13:24:42 148浏览量 回答数 1

0

回答

RDS MySQL同步至阿里云消息队列Kafka版中注意事项的说明是什么?

2021-12-12 23:28:55 352浏览量 回答数 0

0

回答

RDS MySQL同步至阿里云消息队列Kafka版中源库的环境要求的说明是什么?

2021-12-12 23:28:54 319浏览量 回答数 0

1

回答

【RDS】RDS MySQL报错

2021-11-12 16:06:38 1267浏览量 回答数 1

0

回答

技术运维问题 - MYSQL使用 -RDS for MySQL 连接数满情况的处理

2018-09-26 23:36:07 2136浏览量 回答数 0

0

回答

技术运维问题 - MYSQL使用 -RDS for MySQL 报错: SELECT command denied to user 'username'@

2018-09-24 22:10:02 2059浏览量 回答数 0
文章
问答
问答排行榜
最热
最新
相关电子书
更多
MySQL表和索引优化实战
立即下载
MySQL 5.7让优化更轻松
立即下载
从理论到实践,深度解析MySQL Group Replication
立即下载