假设我有一个包含两列的表Student
1)roll
2)marks
现在我想检索标记,如果它作为参数提供的所有卷的相同
如何通过MySQL
上的单个查询实现此目的?
滚动列表存储在php array
变量$intRolls
答案 0 :(得分: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))
答案 1 :(得分: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;