2016-10-28 7 views
0

ユーザーの名前がこの "Ortega、Rafael"のようなデータベースを持っていますが、最初の位置にカンマを付けずに名前が必要です。MySQL |関数に基づいてセルを更新する

私は私がdelimemeterにより部分ましょうこの機能が見つかりました:

CREATE FUNCTION SPLIT_STR(
    x VARCHAR(255), 
    delim VARCHAR(12), 
    pos INT 
) 
RETURNS VARCHAR(255) 
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos), 
     LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1), 
     delim, ''); 

をしかし、私は、UPDATEクエリ

UPDATE `names_table` set `name` = CONCAT(
    SPLIT_STR(
     SELECT `name` FROM `names_table` WHERE <I need help here>, 
     ',', 
     1 
    ), 
    " ", 
    SPLIT_STR(
     SELECT `name` FROM `names_table` WHERE <I need help here>, 
     ',', 
     2 
    ), 

答えて

2

を書き込もうとしたとき、ここで私はちょうどsubstring_index()使用stuckedだ:

update names_table 
    set name = concat_ws(' ', 
         trim(substring_index(name, ',', -1)), 
         trim(substring_index(name, ',', 1)) 
         ) 
    where name like '%,%'; 

これを行うために別の関数を作成する理由がわかりません。

+0

WOW、私の悪い...私はsubstring_index関数の知識を持っていなかったので、私はそれをgoogledし、誰かが自分で関数を作成する必要があると言った。どうもありがとうございます!! – Izuzvo

関連する問題