2015-10-18 94 views
-1

我想查詢所有的結果從數據庫中只有一種類型的消息的:庫MySQLi查詢只有一種結果

表:

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

會有此表約20000行,所以我不想全部選中它們,然後在不需要的情況下對它們進行排序。基本上,List號碼將被改變,所以我不知道他們是什麼,但我只是想查詢結果,其中List是一樣的。

這是一個cron作業腳本,它將在運行後從表格中刪除這些腳本,因此,只要每個查詢返回的都是List,那麼List就是什麼都沒有關係。

什麼是從庫MySQLi查詢直這樣做不知道什麼List是的方式?

SELECT * FROM Table WHERE List = 8 
+0

如果我正確理解你,你想要做的就是使用'WHERE'語句來過濾'SELECT'查詢的結果'SELECT * FROM table WHERE List ='8';' – Wobbles

+0

@Wobbles正確,只有我不要不知道'List'是什麼。 – JROB

+0

如果你不知道什麼列表,那麼你想獲得什麼數據?你如何確定LIST – Wobbles

回答

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條款。

0

以下是使用exists選擇所有具有相同List值的行存在的行的方法。

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