2013-06-05 122 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

相关问题