我有一个表字段membername
,其中包含姓氏和用户的名字.是否有可能分裂成那些2场memberfirst
,memberlast
?
所有记录都具有"Firstname Lastname"格式(没有引号,中间有空格).
我必须创建一些学生完成报告.每个学生都属于一个客户.以下是表格(此问题已简化).
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) 目前我正在进行数据库重新设计项目.该项目的大部分内容是从旧数据库中提取数据并将其导入新数据库.
旧数据库中表中的一列称为"名称".它在一个字段中包含一个名字和一个姓氏(呃).新表有两列; 姓氏和姓氏.我需要提出一种干净,有效的方法将这一列分成两列.
现在我想在同一张桌子上做所有事情然后我可以很容易地将它转移过来.
3列:
我需要做的事情:将名字分成两半并放入姓氏和姓氏
如果有人能够阐明如何做这种事情,我会非常感激,因为我之前没有在SQL中做过这样的事情.
数据库引擎:MySQL
存储引擎:InnoDB
在MySQL查询中:
SELECT host
FROM information_schema.processlist
WHERE ID = connection_id( )
LIMIT 0 , 30
Run Code Online (Sandbox Code Playgroud)
^此查询的结果是:localhost
.
SELECT @@hostname;
Run Code Online (Sandbox Code Playgroud)
^此查询的结果是:localhost
.
但我需要得到ipaddress 192.168.1.2
.
问题: 如何使用mysql查询获得此结果?
我正在尝试仅通过第一个空格来拆分 MSSQL 中的字符串考虑到这里的全名可以有 2 个空格,我不知道如何执行此操作。
例子:
Henk de Vries
我想把它分成:
Firstname: Henk
Lastname: de Vries
Run Code Online (Sandbox Code Playgroud) 我有一个表和值,如下所示
create table #example(id int primary key identity, cols varchar(255))
insert into #example(cols) values('HI,HELLO,BYE,TC')
insert into #example(cols) values('WHAT,ARE,YOU,DOING,HERE')
Run Code Online (Sandbox Code Playgroud)
我需要结果输出,如图所示
注意:值没有限制,即动态
+------+-----------------+
| id | name +
+------+-----------------+
| 1 | David Gilmour |
| 2 | Roger Waters |
| 3 | Li Jen Ho |
+------+-----------------+
Run Code Online (Sandbox Code Playgroud)
当前的名称格式是firstName lastName
,我想将其更改为lastName firstName
,并且我想在一个数据库查询中进行更改。
我想到的解决方案是用 分割名称space
,反转项目,然后用space
胶水再次将它们内爆。但我不知道如何为此编写查询。
我可以在 PHP 中简单地通过空格分解名称并将它们放入数组中,反转数组,然后通过空格胶水分解单词,但目前我无法访问 PHP。
更新1:我发现了这个类似的问题,但我无法让它工作。我希望我没有问重复的问题。
更新 2:名称可以包含 2 个以上的部分。我假设只有第一个单词是名字,其余的名字是姓氏。