// $where[] = ['EXP',\think\Db::raw("FIND_IN_SET({$site_id},site_ids)")];

   $where = array(
       ''=>['EXP',\think\Db::raw("FIND_IN_SET({$site_id},site_ids)")],
       'status'=>['=',2]
   );
   // SELECT *  FROM `fa_exam`  WHERE FIND_IN_SET('2', site_ids)
   // 'FIND_IN_SET("'.$site_id.'",site_ids)'
   $exams = ExamModel::where($where)->select();

   // echo ExamModel::getLastSql();

   $this->success('返回成功', $exams);

MySQL重置自增ID从1开始

在MySQL中,每个表都有一个自增ID字段,用于自动生成唯一标识符。有时我们需要重置这个自增ID,让它从1开始递增。本文将详细介绍如何实现这个功能。

方法一:使用ALTER TABLE语句
我们可以使用ALTER TABLE语句来重置自增ID。具体步骤如下:

-- 1. 找到表的最大ID
SELECT MAX(id) FROM table_name;

-- 2. 重置自增ID为1
ALTER TABLE table_name AUTO_INCREMENT = 1;
SQL

请注意,上述方法只适用于InnoDB表类型。如果你使用的是MyISAM表类型,可能需要使用以下命令:

ALTER TABLE table_name AUTO_INCREMENT = 1 ENGINE=MyISAM;

SQL
方法二:创建新表并导入数据
另一种方法是创建一个新表,并将原表数据导入新表。这样可以轻松地重置自增ID。具体步骤如下:

-- 1. 创建新表
CREATE TABLE new_table_name LIKE table_name;

-- 2. 导入数据
INSERT INTO new_table_name SELECT * FROM table_name;

-- 3. 删除原表
DROP TABLE table_name;

-- 4. 重命名新表
RENAME TABLE new_table_name TO table_name;

SQL
方法三:使用TRUNCATE TABLE语句
TRUNCATE TABLE语句可以删除表中的所有数据,并重置自增ID为1。请注意,TRUNCATE TABLE语句不会触发事务日志,因此执行速度比DELETE TABLE语句更快。具体步骤如下:

TRUNCATE TABLE table_name;

SQL
注意事项
在进行任何操作之前,请务必备份数据。操作失误可能导致数据丢失,造成不可挽回的损失。
在重置自增ID的过程中,可能会破坏与其他表的关联,导致数据不一致。请谨慎操作,并确保数据库整体的一致性。
结语
通过本文的介绍,我们详细了解了如何在MySQL中重置自增ID从1开始。无论选择哪种方法,都需要谨慎操作,以避免数据丢失和不一致性。


Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐