mysql使用group by 分组后SELECT list is not in GROUP BY clause and contains nonaggre MySQL
原因:使用GROUP BY 语句违背了sql_mode=only_full_group_by。因为mysql版本5.7之后默认的模式是ONLY_FULL_GROUP_BY。
MySQL索引优化,使主键ID是连续不间断的 MySQL
解决删除数据后主键不连续问题,导致出随机数据时没有返回
一、去除原有的主键,和自增,并建立唯一索引
ALTER TABLE `demo`.`usa_city_trans`
MODIFY COLUMN `id` int(11) NOT NULL FIRST,
DROP PRIMARY KEY,
ADD UNIQUE INDEX `id`(`id`);
二、添加一个新的字段来当主键索引
ALTER TABLE `demo`.`usa_city_trans`
ADD COLUMN `guid` int(11) NOT NULL AUTO_INCREMENT AFTER `id`,
ADD PRIMARY KEY (`guid`);
三、删除id,并修改guid为id
ALTER TABLE `demo`.`usa_city_trans`
DROP COLUMN `id`,
CHANGE COLUMN `guid` `id` int(11) NOT NULL AUTO_INCREMENT FIRST,
DROP PRIMARY KEY,
ADD PRIMARY KEY (`id`) USING BTREE;
问题:自增必须绑定到第一主键索引上,第二主键索引或不建主键索引自增绑定不上去