如何从字符串字段更新“子字段”?

时间:2013-11-19 20:52:13

标签: mysql sql

我正在使用从QuickBooks文件导入MySQL的数据库。由于QB数据库的设计,我有一个看起来像这样的字段,但有不同的字段:

First Name: Sammi
Last Name: Fernandez
DOB: 1997
Hair: Black

在一个字段中。任务是将这些分成子字段,并UPDATE将表格放在各自的列中。

SELECT声明效果很好:

SELECT
    TRIM(
        SUBSTR(description,
            LOCATE("First Name:", description) + LENGTH("First Name:"),
            LOCATE("Last Name:", description) - (LOCATE("First Name:", description) + LENGTH("First Name:"))))
        AS FirstName,
    ...
    FROM [table];

但是当我尝试UPDATE表时,

UPDATE [table] SET FirstName =
    TRIM(
        SUBSTR(description,
            LOCATE("First Name:", description) + LENGTH("First Name:"),
            LOCATE("Last Name:", description) - (LOCATE("First Name:", description) + LENGTH("First Name:")))),
    ...
WHERE 1;

我得到的是

0 rows affected

这意味着它没有真正设置好吗?

1 个答案:

答案 0 :(得分:1)

你是对的,它没有更新任何东西。更新中的WHERE 1阻止它匹配任何行,因此不会更新任何行。删除此内容,它应该更新表格中 所有 记录的FirstName字段 - 如果您只想更新,请使用WHERE一些行。