MYSQL,如何组合名字的前2个字母和姓氏的前5个字母

Fio*_*t86 0 mysql sql concat substring

我正在尝试编写一个SQL查询(使用SELECT函数),它将获取名字的前两个字母和姓氏的前5个字母,然后组合它们并将它们放在一个名为"用户名"的新列中".我一直尝试使用SUBSTRING和CONCAT函数,但我的语法不对.有谁知道如何做到这一点?

Tar*_*ryn 5

你可以使用CONCAT()SUBSTRING():

select 
  concat(substring(fname, 1, 2), substring(lname, 1, 5)) UserName
from yourtable
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo.

或者你可以使用LEFT()CONCAT():

select 
  concat(left(fname, 2), left(lname, 5)) UserName
from yourtable
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo

如果您的样本数据是:

CREATE TABLE yourtable (`fname` varchar(4), `lname` varchar(50)) ;

INSERT INTO yourtable (`fname`, `lname`)
VALUES ('John', 'Smithton'),
    ('Abby', 'Jonesing');
Run Code Online (Sandbox Code Playgroud)

两个查询都将返回:

| USERNAME |
------------
|  JoSmith |
|  AbJones |
Run Code Online (Sandbox Code Playgroud)