2016-08-23 2 views
0

Есть большой стол имен все как строку «Имя Фамилия»MySQL Заменить String «John Doe» с «John D»

Необходимо обновить всю таблицу, установив строку, чтобы быть «Имя FirstLetterOfSurname», то есть. «Джон Гражданин» становится «Джоном С».

Кажется, проще сделать через PHP, например.

$name = "John Doe"; 
$expl = explode(' ', $name); 
echo $expl [0].' '.$expl[1][0]; 
John D 

интересно узнать о запросе, чтобы просто обновить базу данных.

Помогите оценить?

+0

Что вы попробовали? – Rupsingh

+0

Почему бы вам не сделать это через PHP, получить там логику и вставить ее в свой вопрос? – hd1

+0

обновлен с примером – geniestacks

ответ

0

Я бы найти место пространства, и взять подстроку один символ больше:

SELECT SUBSTR(name, 1, LOCATE(' ', name) + 1) 
FROM mytable 

Конечно, это также может быть сделано как обновление, а не просто запросив строку в правильный формат:

UPDATE mytable 
SET name = SUBSTR(name, 1, LOCATE(' ', name) + 1) 
0

Если вы хотите, чтобы обновить базу данных, пожалуйста, используйте следующий запрос:

UPDATE TestTable 
SET FirstName = CONCAT(LEFT(FirstName, INSTR(FirstName, ' ')) , LEFT(SUBSTRING(FirstName, INSTR(FirstName, ' ') + 1), 1)) ; 

Пожалуйста, найдите Working Demo с данными образца.

Смежные вопросы