2016-12-15 3 views
1

У меня есть следующая таблица:MySQL: Используйте подстроку для получения данных из двух разных столбцов

CREATE TABLE `vendor_contacts` (
    `vendor_id` int(11) NOT NULL, 
    `last_name` varchar(50) NOT NULL, 
    `first_name` varchar(50) NOT NULL, 
    `name_initials` varchar(45) NOT NULL, 
    PRIMARY KEY (`vendor_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

С следующим оператором вставки:

INSERT INTO `vendor_contacts` 
    VALUES (5,'Davison','Michelle',''), 
      (12,'Mayteh','Kendall',''), 
      (17,'Onandonga','Bruce',''), 
      (44,'Antavius','Anthony',''), 
      (76,'Bradlee','Danny',''), 
      (94,'Suscipe','Reynaldo',''), 
      (101,'O\'Sullivan','Geraldine',''), 
      (123,'Bucket','Charles',''); 

Я хотел бы выполнить запрос, который извлекает первая буква от столбцов имени и фамилии.

SELECT vendor_id, last_name, first_name, substring(first_name, 1, 1) AS initials 
FROM vendor_contacts; 

Следующее руководство http://www.w3resource.com/mysql/string-functions/mysql-substring-function.php, только показывает, как работать с одной колонкой.

ответ

3

Вы тянете их по отдельности и объединить их с помощью concat():

SELECT vendor_id, last_name, first_name, 
     CONCAT(LEFT(first_name, 1), LEFT(last_name, 1)) as initials 
FROM vendor_contacts;