having по двум вхожденям [дубликат]

157
25 сентября 2019, 23:10

На данный вопрос уже ответили:

  • Выборка MySql (многие ко многим) 3 ответа

Есть таблица

Нужно найти все id, которые содержат значения в поле digits '15' и '16' одновременно. Т.е. в данном случае - только id = 1.

Пробую

SELECT id from table group by digits having count(digits=15)>=1 and count(digits=16)>=1;

результат выводит неверный.

Answer 1

count(digits=15) даст значение при любом значении digits, кроме NULL - и неважно, какое это будет значение, 1 или 0, но это значение. Так что это эквивалентно простому count(digits).

А вот count(CASE WHEN digits=15 then 1 END) только для 15 даст значение (причём неважно, что написать вместо единицы, лишь бы не NULL). Если значение digits не 15 (в т.ч. NULL) - CASE даст NULL, который не будет посчитан. И запрос даст верные данные.

READ ALSO
Правильный запрос к смежным таблицам mysql php

Правильный запрос к смежным таблицам mysql php

Подскажите пожалуйста, есть 3 таблицыUsers (клиенты), company (компании), users to company (смежная таблица)

157
Изменение значения в поле VARCHAR(200) таблицы InnoDB в MySQL

Изменение значения в поле VARCHAR(200) таблицы InnoDB в MySQL

В mySQL-таблице InnoDB имеется поле типа VARCHARВ таблице множество записей

166
Как сделать фоновое изображение таким?

Как сделать фоновое изображение таким?

Часто вижу на сайтах что фоновое изображение имеет какой-то эффект, на фоне которого отчётливо видно текстНе понимаю, то ли это размытие,...

133
не работает animate

не работает animate

Так как Вы не включили в вопрос разметку и стили, сказать, что Вы делаете неправильно, затруднительноВот что, я думаю, Вы хотели сделать:

147