Оператор AND вывести записи где совпало N-ое количество раз - MySQL

Узнай цену своей работы

Формулировка задачи:

Всем привет. Есть таблица c 4 значениями типа integer. Название таблицы: "MyTable". Столбцы: B1,B2,B3,B4 B1 | B2 | B3 | B4
 
34 , 4 , 5 , 6
34 , 5 , 53 , 6
3 , 4 , 1 , 63
Даю код создания таблицы:
Листинг программы
  1. CREATE TABLE MyTable (
  2. B1 INTEGER NOT NULL,
  3. B2 INTEGER NOT NULL,
  4. B3 INTEGER NOT NULL,
  5. B4 INTEGER NOT NULL
  6. );
  7. INSERT INTO MyTable VALUES ( 34,4,5,6);
  8. INSERT INTO MyTable VALUES ( 34,5,53,6);
  9. INSERT INTO MyTable VALUES ( 3,4,1,63);
Нужно сделать такой запрос, чтобы он показал записи если при запросе совпало 3 и более значений. Пример:
Листинг программы
  1. SELECT * FROM MyTable WHERE B1 = 34 AND B2 = 4 AND B3 = 5 AND B4 = 3
не даст результата записи: "34,4,5,6", потому что в столбце B4 ,будет false. А вот не знаете ли вы как сделать такой запрос, чтобы он показал такую запись? Т.е получается оператор and c погрешностью совпадения.

Решение задачи: «Оператор AND вывести записи где совпало N-ое количество раз»

textual
Листинг программы
  1. SELECT *
  2. FROM mytable
  3. WHERE
  4. ((CASE WHEN ((B1 = 34)) THEN 1 ELSE 0 END) +
  5. (CASE WHEN ((B2 = 4)) THEN 1 ELSE 0 END) +
  6. (CASE WHEN ((B3 = 5)) THEN 1 ELSE 0 END) +
  7. (CASE WHEN ((B4 = 0)) THEN 1 ELSE 0 END) ) >= 3

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы