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する