SELECT count(invoice_no)
FROM `ecs_order_info` a
WHERE (
SELECT COUNT( invoice_no )
FROM `ecs_order_info` b
WHERE a.invoice_no = b.invoice_no) >1 还有 in(field) 这种效率更低数据有1万多条 有没有高效的方法累
FROM `ecs_order_info` a
WHERE (
SELECT COUNT( invoice_no )
FROM `ecs_order_info` b
WHERE a.invoice_no = b.invoice_no) >1 还有 in(field) 这种效率更低数据有1万多条 有没有高效的方法累
看下这里 如果数据只是1万多条 应该非常快的
所以这个应该就可以了
select count(*)
from (
SELECT invoice_no
FROM `ecs_order_info`
group by invoice_no
having count(*)>1
) tmp
;试一下,有什么问题上来继续讨论
-------------------
我取得个数是用来做分页用的,具体还是要取出更多内容的。我测试少量数据的时候就可以,12000条数据,是用的多表查询,大概3.4个left join,根据主表的某个字段的值,相同数量大于1的都要取出来的、