我正在尝试查询数据库中只有一种类型的消息的所有结果:
表:
ID List Content
1 8 This
2 8 That
3 9 Other
4 8 Last
此表中将有大约20,000行,因此我不想全部选择它们,如果不需要,则对它们进行排序。基本上,List
数字会发生变化,因此我不知道它们是什么,但我只想查询List
相同的结果。
这是一个cron作业脚本,它将在运行后从表中删除它们,因此只要每个查询返回所有相同的List
,List
是什么并不重要。
直接从MySQLi查询中执行此操作的方法是什么,而不知道List
是什么?
SELECT * FROM Table WHERE List = 8
答案 0 :(得分:2)
您似乎想要选择list
重复的行。要获得具有最多重复的行,您可以使用:
select t.*
from table t join
(select list, count(*) as cnt
from table
group by list
order by count(*) desc
limit 1
) tt
on t.list = tt.list;
如果您想要复制list
的任何行,可以删除having
子句。
答案 1 :(得分:0)
这是使用exists
选择存在具有相同List值的另一行的所有行的方法。
select * from mytable a
where exists (
select 1 from mytable b
where b.List = a.List
and b.Id <> a.Id
)