mysql - 如何从视图的列是 IFNULL(1/0, 0) 的视图中插入表?
问题描述
我的环境:
MariaDB 10.3.10
我创建了一个表 pe:
CREATE TABLE pe (
id int(11) NOT NULL AUTO_INCREMENT,
weight int(11) DEFAULT NULL,
height int(11) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
id, weight, height
1, 63, 172
2, 62, 173
3, null, null
4, 60, null
并创建一个视图 pe_view:
CREATE VIEW pe_view AS
SELECT
weight, height, IFNULL(FORMAT(weight/height/height*10000, 2), 0) AS bmi
FROM pe;
然后创建一个表 pe_per_year:
CREATE TABLE pe_per_year (
id int(11) NOT NULL AUTO_INCREMENT,
weight int(11) DEFAULT NULL,
height int(11) DEFAULT NULL,
bmi double(5,2) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
现在,我想从 pe_view 插入到 pe_per_year。我用:
INSERT INTO
pe_per_year(weight, height, bmi)
SELECT weight, height, bmi
FROM pe_view;
它告诉我“除以零”。请问我有什么问题吗?以及如何将一些 IFNULL(1/0, 0) 数据插入到 double(5,2) 中?
解决方案
推荐阅读
- sql - SQLite SELECT all for Last 7 days
- python - Django 脆皮表单无法正常工作
- ruby - Ruby 中的 object.method 或 method(object)?
- php - 如何设置一个 cookie 来计算每个用户发送表单的次数?
- c - 字符串文字到 char 数组文字
- reactjs - React/Material UI 对话框:如何关闭对话框
- html - 如何使用 text-transform:uppercase 而不用 :hover 移动句子的其余部分
- html - 为什么显示图像时收到 404 错误
- tizen - Tizen:如何在模拟器上运行任何东西?
- python - 使用 dataframe.query 从 pd.DataFrame 中包含的列表中选择值