大家好你们好。在 mysql 中遇到一个难以理解的故障(或缺乏理解)
有一张医生桌。如果您进行 2 个相同的查询,但只有 LIMIT X 的差异,则行会重复。我不懂为什么。
SELECT id FROM 2020_medicine WHERE id_region=1 AND status=1 ORDER BY rate_summ DESC LIMIT 0,12;
SELECT id FROM 2020_medicine WHERE id_region=1 AND status=1 ORDER BY rate_summ DESC LIMIT 12,12;
应该显示 id 不重复。
但实际上,在第二个样本中有来自第一个样本的 id,这不应该是。这是为什么?什么样的故障?
id - int AUTO_INCREMENT первичный,
id_region - int,
status - tinyint,
rate_summ decimal(4,1),
索引 id_region + 状态
PS。服务器版本:10.3.31-MariaDB-0ubuntu0.20.04.1,数据库客户端版本:libmysql - mysqlnd 7.4.3
同时,如果我按名称 ASC 排序(按 varchar 字段排序) - 一切正常,显示不重复。
也许我在按 rate_summ 排序时误解了,即 decimal(4,1) ?任务是用小数写下数字(小数点后一位)
因为 rate_summ 重复,需要在 ORDER BY 中添加按 ID 排序