2013-06-05 123 views
1

假設我有一個表Student有兩列檢索從MySQL具有對特定列相同值的記錄

1)roll

2)marks

現在我想找回,如果它的標記對於作爲參數提供的所有卷是相同的

如何在MySQL上使用單個查詢來實現此目的?

卷列表存儲在php array可變$intRolls

回答

1

這裏(1,2,3,4,5)你必須通過爲Array。檢查SQL FIDDLE這裏

SELECT 
    marks 
FROM students 
WHERE roll IN(1,2,3,4,5) 
GROUP BY marks 
HAVING COUNT(*) = (SELECT 
         COUNT(DISTINCT roll) 
        FROM students 
        WHERE roll IN(1,2,3,4,5)) 
+0

謝謝Devel .........它工作..... – vish

+0

如何接受? – vish

1

應該怎樣查詢返回如果有不同的分數呢?這一個將在這種情況下返回NULL:

SELECT IF(COUNT(mark) > 1, NULL, mark) AS processed_mark 
FROM students 
WHERE roll IN (coma-separated-list-of-rolls-here) 
GROUP BY mark; 
+0

在IF中返回錯誤(COUNT(mark)> 1; NULL; mark) – vish

+0

是的,用簡單的昏迷代替分號,對此抱歉。 – RandomSeed

相關問題