Оператор 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
Даю код создания таблицы:
CREATE TABLE MyTable (
  B1  INTEGER NOT NULL,
  B2  INTEGER NOT NULL,
  B3  INTEGER NOT NULL,
  B4  INTEGER NOT NULL
);
 
INSERT INTO MyTable VALUES ( 34,4,5,6);
INSERT INTO MyTable VALUES ( 34,5,53,6);
INSERT INTO MyTable VALUES ( 3,4,1,63);
Нужно сделать такой запрос, чтобы он показал записи если при запросе совпало 3 и более значений. Пример:
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
Листинг программы
SELECT *
FROM mytable
WHERE 
((CASE WHEN ((B1 = 34)) THEN 1 ELSE 0 END) + 
(CASE WHEN ((B2 = 4)) THEN 1 ELSE 0 END) +
(CASE WHEN ((B3 = 5)) THEN 1 ELSE 0 END) +
(CASE WHEN ((B4 = 0)) THEN 1 ELSE 0 END) ) >= 3

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


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

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

15   голосов , оценка 3.8 из 5
Похожие ответы