在MySQL中,要查詢字段值相同的數據,可以使用GROUP BY
和HAVING
子句。以下是一個示例查詢,假設我們有一個名為students
的表,其中包含id
,name
和class
字段,我們想要找到具有相同班級(class)的所有學生。
SELECT class, COUNT(*) as num_students
FROM students
GROUP BY class
HAVING num_students > 1;
這個查詢首先使用GROUP BY
子句按class
字段對數據進行分組。然后,它使用HAVING
子句篩選出具有多個學生(即num_students > 1
)的班級。結果將顯示具有相同班級的學生數量。
如果你想獲取具有相同字段值的具體數據,可以使用子查詢。例如,以下查詢將返回具有相同class
值的所有學生的詳細信息:
SELECT *
FROM students
WHERE class IN (
SELECT class
FROM students
GROUP BY class
HAVING COUNT(*) > 1
);
這個查詢首先在子查詢中找到具有相同班級的學生數量大于1的班級,然后在外部查詢中選擇這些班級的學生詳細信息。