mysql - 如果表中有空值,如何将MySQL列合并为一列?

标签 mysql sql select insert

我想如果我通过显示图像来问你会更好。

这是我的people 表。如您所见,这是一个糟糕的设计理念。有些人有不止一种职业(作家/ Actor ),所以我将使用一个联结表来使其工作,并摆脱 people 表。我的问题是,如何将所有这些值从 people 移动到我的 person 表,而不复制空值? (比如people_id = 1 只包含导演姓名,其他为空。

以下查询也添加了空值。而且我也无法用它选择所有列。

INSERT INTO person (person_name)
          SELECT director_name
          FROM people
          WHERE people_id < 150000;

我的个人表。我想在 person_name 列中将所有名称从 people 复制到 person 表。 enter image description here

最佳答案

大概,您想比较NULL/blank/whatever:

INSERT INTO person (person_name)
      SELECT director_name
      FROM people
      WHERE people_id < 150000 AND
            director_name IS NOT NULL AND
            director_name <> '';

关于mysql - 如果表中有空值,如何将MySQL列合并为一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27722148/

相关文章:

mysql 一列的最后一条记录以及其他列和分组依据的总和

php - 如何从网站的数据库中抓取链接?

php - 在带有 % 通配符的 PHP 准备语句中实现 LIKE

MySQL 从 csv 字符串中提取数据并插入到第二个表中

php - 从 2 个带有 2 个外键的表中选择

mysql - 如何通过几个条件来计算测距?

MySQL存储过程选择检查插入

mysql - SQL:获取包含 1 或另一个的列

php - 确定 SQL UPDATE 是否更改了列的值

javascript - 将 if 和 else if 函数与选择输入一起使用(根据公里和英里转换结果)