MySQLで更新するデータに別の列の値を使用する
MySQLで更新するデータに別の列の値を使用する
Workbenchを使います。
BMIの計算をSQLで計算して入力してみる
# データベースを作成する
CREATE SCHEMA `sample` DEFAULT CHARACTER SET utf8mb4;
# テーブルを作成する
CREATE TABLE `sample`.`human` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`height` INT NOT NULL,
`weight` INT NOT NULL,
`bmi` FLOAT,
PRIMARY KEY (`id`));
# テーブルにデータを入力する
INSERT INTO `sample`.`human` (`name`, `height`, `weight`) VALUES ('taro', '170', '70');
INSERT INTO `sample`.`human` (`name`, `height`, `weight`) VALUES ('jiro', '160', '60');
INSERT INTO `sample`.`human` (`name`, `height`, `weight`) VALUES ('hanako', '150', '50');
# 確認
SELECT * FROM sample.human;
上のSQL文をWorkbenchのSQL Editerに入力します。雷のアイコンを押下すると、SQLが実行されます。

全レコードのBMIのカラムを一括で入力更新します。
SET SQL_SAFE_UPDATES = 0;
UPDATE sample.human SET human.bmi = ROUND((human.weight / (human.height * human.height)) * 10000, 2);
SET SQL_SAFE_UPDATES = 1;
SELECT * FROM sample.human;

bmiのカラムが全て更新されました。ヨシ!
MySQLのWorkbenchのページ一覧
・Workbench入門
・Workbenchでcsvをインポートする方法
・MySQLのWorkbenchでカラムの順番を変更する
・SQLでカラムを一括して更新したい
・Workbenchで自動でコミットしない方法
・MySQLで更新するデータに別の列の値を使用する
・Workbenchでboolean型のカラムを追加するとtinyint型に変えられてしまう
・Workbenchでデータベースをimportする
