MySQLi只查询一种类型的结果

MySQLi只查询一种类型的结果,mysql,Mysql,我正在尝试查询数据库中仅一种消息类型的所有结果: 表: ID List Content 1 8 This 2 8 That 3 9 Other 4 8 Last 这个表中大约有20000行,所以我不想把它们全部选中,然后在不需要的情况下对它们进行排序。基本上,列表编号会发生变化,所以我不知道它们是什么,但我只想在列表相同的地方查询结果 这是一个cron作业脚本,它将在运行后从表中删除这些内容,因此列表是

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

表:

ID    List    Content
1     8       This
2     8       That
3     9       Other
4     8       Last
这个表中大约有20000行,所以我不想把它们全部选中,然后在不需要的情况下对它们进行排序。基本上,列表编号会发生变化,所以我不知道它们是什么,但我只想在列表相同的地方查询结果

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

在不知道列表是什么的情况下,直接从MySQLi查询执行此操作的方法是什么

这里有一种使用exists选择存在具有相同列表值的另一行的所有行的方法

select * from mytable a
where exists (
    select 1 from mytable b
    where b.List = a.List
    and b.Id <> a.Id
)

您似乎想要选择列表重复的行。要获取重复最多的行,可以使用:

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;

如果要复制列表中的任何行,可以删除having子句。

如果我理解正确,则只需使用where语句筛选SELECT查询的结果SELECT*FROM table where list='8'@摆动正确,只是我不知道列表是什么。如果你不知道列表是什么,那么你想得到什么数据?你们是如何确定名单的
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;