MySQLi只查询一种结果

时间:2015-10-18 14:59:16

标签: php mysql mysqli

我正在尝试查询数据库中只有一种类型的消息的所有结果:

表:

ID    List    Content
1     8       This
2     8       That
3     9       Other
4     8       Last

此表中将有大约20,000行,因此我不想全部选择它们,如果不需要,则对它们进行排序。基本上,List数字会发生变化,因此我不知道它们是什么,但我只想查询List相同的结果。

这是一个cron作业脚本,它将在运行后从表中删除它们,因此只要每个查询返回所有相同的ListList是什么并不重要。

直接从MySQLi查询中执行此操作的方法是什么,而不知道List是什么?

SELECT * FROM Table WHERE List = 8

2 个答案:

答案 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
)