相关疑难解决方法(0)

你可以拆分/爆炸MySQL查询中的字段吗?

我必须创建一些学生完成报告.每个学生都属于一个客户.以下是表格(此问题已简化).

CREATE TABLE  `clients` (
  `clientId` int(10) unsigned NOT NULL auto_increment,
  `clientName` varchar(100) NOT NULL default '',
  `courseNames` varchar(255) NOT NULL default ''
)
Run Code Online (Sandbox Code Playgroud)

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'
)
Run Code Online (Sandbox Code Playgroud)

courseId此处的字段是clients.courseNames字段中课程名称的索引.因此,如果客户courseNames是"AB01,AB02,AB03",并且courseId注册的是2,则学生在AB03.

有没有办法可以在包含课程名称的这些表上进行单一选择?请记住,将有来自不同客户的学生(因此具有不同的课程名称,并非所有课程名称都是连续的,例如:"NW01,NW03")

基本上,如果我可以拆分该字段并从结果数组中返回单个元素,那将是我正在寻找的.这就是我在魔法伪代码中的意思:

SELECT e.`studentId`, SPLIT(",", c.`courseNames`)[e.`courseId`]
FROM ...
Run Code Online (Sandbox Code Playgroud)

mysql

42
推荐指数
6
解决办法
20万
查看次数

标签 统计

mysql ×1