在mysql查询中将一列值分解为两列?

时间:2018-08-28 13:20:42

标签: php mysql laravel

我想将一列分为两列,并更新为另外两列。

像下面一样。

Name              FirstName      LastName
ABC NAME             ABC           NAME
PQR RNP              PQR           RNP
SUM NUM              SUM           NUM

分解并更新名称字段值,并将两列FirstName和LastName更新为相同的表。

3 个答案:

答案 0 :(得分:1)

如果要直接在MySQL中执行此操作,则需要以下查询:

ALTER TABLE yourtable ADD COLUMN FirstName VARCHAR(30),
                      ADD COLUMN LastName VARCHAR(30);
UPDATE yourtable 
    SET FirstName = SUBSTRING_INDEX(Name, ' ', 1),
        LastName = IF(LOCATE(' ', Name) = 0, '', SUBSTRING_INDEX(Name, ' ', -1));
ALTER TABLE yourtable DROP COLUMN Name;

在进行结构修改之前始终备份表。

答案 1 :(得分:0)

解决方案:

<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />

答案 2 :(得分:0)

SELECT
  Name,
  LEFT(Name, LOCATE(' ', Name) - 2) AS FirstName,
  RIGHT(Name, LENGTH(Name) - LOCATE(' ', Name)) AS LastName
FROM
  my_table;

如果您使用其他SQL引擎,则可能需要将LENGTH()更改为LEN(),将LOCATE()更改为CHARINDEX()