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;