-
SUBSTRING_INDEX関数を使用する方法:
UPDATE テーブル名 SET 姓カラム = SUBSTRING_INDEX(名前カラム, ' ', 1), 名カラム = SUBSTRING_INDEX(名前カラム, ' ', -1)
-
REGEXP_SUBSTR関数を使用する方法:
UPDATE テーブル名 SET 姓カラム = REGEXP_SUBSTR(名前カラム, '^[^ ]+'), 名カラム = REGEXP_SUBSTR(名前カラム, '[^ ]+$')
-
CONCAT, SUBSTRING_INDEX, LOCATE関数を組み合わせる方法:
UPDATE テーブル名 SET 姓カラム = SUBSTRING_INDEX(名前カラム, ' ', 1), 名カラム = SUBSTRING_INDEX(SUBSTRING_INDEX(名前カラム, ' ', -1), ' ', -1)
-
スクリプト言語(Pythonなど)を使用してデータを抽出し、分割する方法:
import mysql.connector # MySQLへの接続 db = mysql.connector.connect( host="ホスト名", user="ユーザー名", password="パスワード", database="データベース名" ) cursor = db.cursor() # SELECT文を実行してデータを取得 cursor.execute("SELECT id, 名前カラム FROM テーブル名") rows = cursor.fetchall() # データを分割してUPDATE文を生成し、実行 for row in rows: full_name = row[1] names = full_name.split(' ') 姓 = names[0] 名 = ' '.join(names[1:]) cursor.execute("UPDATE テーブル名 SET 姓カラム = %s, 名カラム = %s WHERE id = %s", (姓, 名, row[0])) # 変更をコミット db.commit() # 接続をクローズ cursor.close() db.close()
これらの方法を使用することで、MySQLの名前カラムを姓と名に分割することができます。適切な方法を選択し、データベースに合わせてコードを調整してください。