我目前有一个超过600万行的数据库,并且还在增长.我目前做SELECT COUNT(id)FROM table; 为了向我的用户显示该号码,但数据库变得越来越大,除了能够显示该号码之外,我不需要存储所有这些行.有没有办法选择要显示的auto_increment值,以便我可以清除数据库中的大多数行?使用LAST_INSERT_ID()似乎不起作用.
如果一个对象将被持久化到数据库,是否有一种紧凑的方式使用ActiveRecord来查询下一个要使用的id?在SQL中,像这样的查询看起来像:
SELECT max(id) + 1 FROM some_table;
Run Code Online (Sandbox Code Playgroud) 在 MySQL 中,是否可以按顺序查询下一个数字以获取自动递增字段?
对于名为 projects 的表,该表的主键project_id是一个自动递增字段。在插入新行之前,我想知道将分配给 project_id 的编号。
我该如何查询?
我有一张带id柱子的桌子.ids按升序排列,但不一定是连续的.例如:1,2,3,5,6,10,11,12
我需要找到下一个"free"id,即max(id)+ 1(如果表为空,则为1).
目前我在PHP中这样做:
function get_free_id($con) {
$sql = "SELECT MAX(id) AS last_id FROM Table";
$last_id_query = mysql_query($sql, $con);
$last_id_result = mysql_fetch_array($last_id_query);
$last_id = $last_id_result['last_id'];
return ($last_id == NULL) ? 1 : ($last_id + 1);
}
Run Code Online (Sandbox Code Playgroud)
我觉得这个功能对于这个简单的任务来说"太长了",并且可以做得更简单.
我对吗 ?怎么样 ?