Mysql 如果值为null,则添加列

Mysql 如果值为null,则添加列,mysql,Mysql,我想根据表中的字段值是否为NULL向结果集添加一列 以下是我的查询: 选择字段_id, 选择字段值 从员工\字段\信息 其中employee_id='1' 和field\u id=persona\u fields.field\u id 作为字段u值, 选择字段 来自id=persona\u FIELDS.field\u id的字段 作为字段名称 来自persona_字段 其中persona_id='1' 我希望能够做的是,如果字段_值为NULL,则为bool列添加一个tinyint 我试过这个:

我想根据表中的字段值是否为NULL向结果集添加一列

以下是我的查询:

选择字段_id, 选择字段值 从员工\字段\信息 其中employee_id='1' 和field\u id=persona\u fields.field\u id 作为字段u值, 选择字段 来自id=persona\u FIELDS.field\u id的字段 作为字段名称 来自persona_字段 其中persona_id='1' 我希望能够做的是,如果字段_值为NULL,则为bool列添加一个tinyint

我试过这个:

但这只是在“字段列表”中出现了未知列“field_value”
不管怎样,我能完成我想做的事情吗?还是我运气不佳?

您不能从子选择中引用父选择中的列。子选择基本上是独立运行的。您需要做的是将其重新编写为联接。你的问题很复杂,很难理解,而且我认为不完整,所以我只能近似地给出一个解决方案

下面是一个例子:

SELECT field_id,
  employee_field_info.field_value,
  IF(employee_field_info.field_value IS NULL, "0","1") AS value_bool
  FROM persona_fields
  LEFT JOIN employee_field_info ON employee_field_info.field_id=persona_fields.field_id
  WHERE employee_id=1

我想答案就在这里。。您正在尝试获取字段列表中不可用的字段。有时会出现此错误,因为您使用的是一个DB开发工具,该工具中的字段已修改,但尚未提交


关于您的查询:对于这样简单的结果,最好避免这样的子查询一个简单的连接就可以了。

这正是我所需要的。谢谢
SELECT field_id,
  employee_field_info.field_value,
  IF(employee_field_info.field_value IS NULL, "0","1") AS value_bool
  FROM persona_fields
  LEFT JOIN employee_field_info ON employee_field_info.field_id=persona_fields.field_id
  WHERE employee_id=1