用于将行值复制到空白匹配条件的SQL命令

时间:2017-09-22 03:25:11

标签: mysql sql phpmyadmin

我正在使用mysql中有80000行的表,更具体地说是通过phpMyAdmin访问。

我发现有100个随机用户ID没有在通用名称字段中显示其名称,但是在“运费和结算”字段中显示它们。我在下面的内容是SQL命令需要发生的事情。

如果user_id的meta_key first_name值为空 然后将user_id的meta_key(shipping_first_name)复制到名为(名字)的meta_key以匹配user_id。

我附加了数据库的jpg,因此您可以看到字段存在的字段。Picture of rows mentioned.

1 个答案:

答案 0 :(得分:1)

我认为您可以尝试以下更新:

UPDATE yourTable t1
INNER JOIN yourTable t2
    ON t1.user_id = t2.user_id AND
       t1.meta_key = 'first_name' AND
       t2.meta_key = 'shipping_first_name'
SET t1.meta_value = t2.meta_value
WHERE
    COALESCE(t1.meta_value, '') = ''

我使用上面的COALESCE将空字符串和null视为表格中与第一个名称缺失值相同的内容,因为我不知道哪个(或两个?)你正在使用。