在MySQL INSERT期间从其他数据集中检索值

时间:2013-04-10 22:19:26

标签: mysql sql

我有一个包含两个整数列的表。 一个自动增量索引号和数字。

我想要做的是插入一个新行并使用索引编号最高的行的数字值。

我想象的是:

INSERT INTO `table`( `number`) VALUES (select `number` from `table` ORDER BY `index` DESC LIMIT 1)

1 个答案:

答案 0 :(得分:0)

我认为您发布的查询会有效。这是另一种方法:

INSERT INTO `table`(`number`)
  SELECT MAX(`number`)
  FROM `table`
  WHERE `index` = (SELECT MAX(`index`) FROM `table`)

我不确定它是否更快,但你可以验证它。

SELECT MAX(number)会阻止返回多个值,例如,如果最高index值为999且多行的index值为999。