Оператор AND вывести записи где совпало N-ое количество раз - MySQL
Формулировка задачи:
Всем привет.
Есть таблица c 4 значениями типа integer. Название таблицы: "MyTable". Столбцы: B1,B2,B3,B4
B1 | B2 | B3 | B4
Даю код создания таблицы:
Нужно сделать такой запрос, чтобы он показал записи если при запросе совпало 3 и более значений. Пример:
не даст результата записи: "34,4,5,6", потому что в столбце B4 ,будет false. А вот не знаете ли вы как сделать такой запрос, чтобы он показал такую запись? Т.е получается оператор and c погрешностью совпадения.
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);
SELECT * FROM MyTable WHERE B1 = 34 AND B2 = 4 AND B3 = 5 AND B4 = 3
Решение задачи: «Оператор 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д