簡體   English   中英

分組並在mysql中計數

[英]group and count in mysql

我有這樣的桌子

表格1

   col1             
    ______
    data1
    data2
    data3             
    data4             
    data5             

和表2

data1  
_________
data1,data2
data1
data3,data1
data5
data4,data5,data1
data2

我是否可以將兩個表都與結果兩列第一列的內容table1.col1列表和列2的內容進行連接的查詢的內容

column1|column2             
_______|_______
data1  | 4
data2  | 2
data3  | 1            
data4  | 1          
data5  | 2

目前,我在PHP循環中使用查詢

$s="select col1 from table1";
foreach($conn->query($s) as $r);) {
echo "select count(*) from table2 where data1 like '%$r[col1]%' "; 
}

如果有任何查詢可以在循環內部進行而無需查詢。

順便說一句,我使用pdo查詢助手而不是mysql_query,我只是使用mysql_query編寫了一些代碼。

謝謝。

首先,當您在SQL查詢中需要多個值時,不要在單個字段(表2)中保留多個值。

無論如何,您可以利用MySQL的FIND_IN_SET()函數來連接兩個表,然后使用GROUP BYCOUNT(*)來獲得所需的信息。

SELECT table1.col1 as column1, count(*) as column2
FROM table1
LEFT JOIN tabl2 ON FIND_IN_SET(table1.col1,table2.data1)
GROUP BY table1.col1;

盡管已經准備好執行此操作的功能,但您應注意此處可能發生的性能問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM