0
在我的MySQL表之間的最大值Mysql的更新場我有3個領域:重量,gweight,volweight與其他2場
gweight和volweight有不同的價值觀,我想和gweight之間的最大值來更新重和體重。 謝謝
在我的MySQL表之間的最大值Mysql的更新場我有3個領域:重量,gweight,volweight與其他2場
gweight和volweight有不同的價值觀,我想和gweight之間的最大值來更新重和體重。 謝謝
UPDATE myTable
SET weight=GREATEST(gweight,volweight);
警告這將更新每一行。
爲GREATEST()
請參閱手冊頁。
其他注意事項:
CREATE TABLE xxx2
( id int auto_increment primary key,
col1 int null,
col2 int null,
col3 int null
);
INSERT xxx2(col1,col2) values (null,1),(1,2);
UPDATE xxx2
SET col3=GREATEST(col1,col2);
SELECT * FROM xxx2;
+----+------+------+------+
| id | col1 | col2 | col3 |
+----+------+------+------+
| 1 | NULL | 1 | NULL |
| 2 | 1 | 2 | 2 |
+----+------+------+------+
在列,以便NULL不會使幸福GREATEST()
。如果您的字段不可爲空則不存在上述不煩惱,你可以忽略以下修正:
TRUNCATE xxx2;
INSERT xxx2(col1,col2) values (null,1),(1,2);
UPDATE xxx2
SET col3=GREATEST(COALESCE(col1,0),COALESCE(col2,0));
SELECT * FROM xxx2;
+----+------+------+------+
| id | col1 | col2 | col3 |
+----+------+------+------+
| 1 | NULL | 1 | 1 |
| 2 | 1 | 2 | 2 |
+----+------+------+------+
所以COALESCE()
會解決NULL問題。
非常感謝你! –
你是什麼意思之間的最大值?你的意思是兩個重量值和體重值是兩者中較大的一個? – Drew
是的!我需要它... –