Как сравнить количество строк в операторе MYSQL? - PullRequest
3 голосов
/ 19 октября 2011

Допустим, у меня есть эта таблица SQL

id | name | date
1  | as   | 0000-00-00
1  | df   | 0000-00-00
1  | fg   | 0000-00-00
1  | hj   | 0000-00-00
2  | xc   | 2011-2-32
2  | op   | 2011-3-21
3  | er   | 2011-2-43
4  | po   | 0000-00-00
4  | ui   | 0000-00-00

Я хочу получить идентификатор с четырьмя строками даты со значением 0000-00-00, которое будет равно 1

Оператор SQL, о котором я думаю, выглядит примерно так ... (Это явно неправильно)

SELECT id
FROM table1
WHERE COUNT(date = 0000-00-00) = 4

Я открыт для других ответов, если у вас есть лучшее / эффективное решение

Ответы [ 3 ]

6 голосов
/ 19 октября 2011
SELECT id, count(*)
FROM table1
WHERE date = 0000-00-00
GROUP BY id
HAVING count(*) = 4
2 голосов
/ 19 октября 2011
SELECT id, count(id)
FROM table1
WHERE date = '0000-00-00'
GROUP BY id
HAVING count(id) = 4
2 голосов
/ 19 октября 2011

Это должно быть то, что вы ищете

SELECT id, count(id)
FROM table1
WHERE date = 0000-00-00
HAVING count(id) = 4
GROUP BY id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...