Разделить значение от одного поля до двух - PullRequest
115 голосов
/ 23 апреля 2010

У меня есть поле таблицы membername, которое содержит как фамилию, так и имя пользователя. Можно ли разделить их на 2 поля memberfirst, memberlast?

Все записи имеют этот формат «Имя, Фамилия» (без кавычек и пробела между ними). ​​

Ответы [ 13 ]

0 голосов
/ 28 февраля 2017
UPDATE `salary_generation_tbl` SET
    `modified_by` = IF(
        LOCATE('$', `other_salary_string`) > 0,
        SUBSTRING(`other_salary_string`, 1, LOCATE('$', `other_salary_string`) - 1),
        `other_salary_string`
    ),
    `other_salary` = IF(
        LOCATE('$', `other_salary_string`) > 0,
        SUBSTRING(`other_salary_string`, LOCATE('$', `other_salary_string`) + 1),
        NULL
    );
0 голосов
/ 26 апреля 2016

Метод, который я использовал, чтобы разделить first_name на first_name и last_name, когда все данные поступили в поле first_name. Это поместит только последнее слово в поле фамилии, поэтому "john phillips sousa" будет "john phillips" name и "sousa" фамилия Это также позволяет избежать перезаписи любых уже исправленных записей.

set last_name=trim(SUBSTRING_INDEX(first_name, ' ', -1)), first_name=trim(SUBSTRING(first_name,1,length(first_name) - length(SUBSTRING_INDEX(first_name, ' ', -1)))) where list_id='$List_ID' and length(first_name)>0 and length(trim(last_name))=0
0 голосов
/ 20 мая 2013

mysql 5.4 предоставляет встроенную функцию разделения:

SPLIT_STR(<column>, '<delimiter>', <index>)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...