Member 12716394 Ответов: 1

Mysql : получить результирующий набор на основе критериев соответствия (шаблон, подобный структуре)


Я только хочу показать результаты на основе определенных критериев соответствия (Только те результаты, которые следуют этому шаблону)

Я ожидаю получить результирующий набор с идентификатором От 1 до 5, и 12-16 только так, как показано ниже

ID	W1	W2	W3	W4	W5
1	1	43	72	10	33
2	61	38	16	68	51
3	80	54	62	87	45
4	73	39	64	77	22
5	49	82	32	56	41

12	1	43	72	10	33
13	61	38	16	68	51
14	80	54	62	87	45
15	73	39	64	77	22
16	49	82	32	56	41


Что я уже пробовал:

SELECT T1.ID, T1.W1, T1.W2, T1.W3, T1.W4, T1.W5

FROM drvdb.scores t1
JOIN drvdb.scores t2 ON t1.ID = t2.ID

WHERE (T1.W1 ='1' AND T1.W2 = '43' AND T1.W3 = '72' AND T1.W4 = '10' AND T1.W5 = '33')
OR (T2.W1 ='61' AND T2.W2 = '38' AND T2.W3 = '16' AND T2.W4 = '68' AND T2.W5 = '51')
OR (T2.W1 ='80' AND T2.W2 = '54' AND T2.W3 = '62' AND T2.W4 = '87' AND T2.W5 = '45')
OR (T2.W1 ='73' AND T2.W2 = '39' AND T2.W3 = '64' AND T2.W4 = '77' AND T2.W5 = '22')
OR (T2.W1 ='49' AND T2.W2 = '82' AND T2.W3 = '32' AND T2.W4 = '56' AND T2.W5 = '41')

GROUP BY T1.ID
HAVING COUNT (DISTINCT T1.W1, T1.W2, T1.W3, T1.W4, T1.W5) = 1	


Я пробовал несколько запросов, но все равно получал одни и те же нежелательные результаты
Моя проблема заключается в условности ОПЕРАЦИОННАЯ как бы мне хотелось сделать это! И вот где я застрял и не могу думать дальше

Разве нет способа обойти это? Неужели это невозможно? Я застрял на этом в течение последних двух месяцев, пытаясь понять, как лучше всего я могу это сделать this...my спина просто болит.
Сейчас самое время позвать на помощь.
Я новичок в SQL и пытаюсь познакомиться с этим языком


Любые усилия будут высоко оценены

Я использую MySQL Community Server - GPL версии 8.0.14

Это мой файл сценария

CREATE DATABASE IF NOT EXISTS `drvdb`;
USE `drvdb`;


CREATE TABLE IF NOT EXISTS `scores` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `W1` varchar(2) DEFAULT NULL,
  `W2` varchar(2) DEFAULT NULL,
  `W3` varchar(2) DEFAULT NULL,
  `W4` varchar(2) DEFAULT NULL,
  `W5` varchar(2) DEFAULT NULL,
  PRIMARY KEY (`ID`),
  KEY `W1` (`W1`),
  KEY `W2` (`W2`),
  KEY `W3` (`W3`),
  KEY `W4` (`W4`),
  KEY `W5` (`W5`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;



INSERT INTO `scores` (`ID`, `W1`, `W2`, `W3`, `W4`, `W5`) VALUES
	(1, '1', '43', '72', '10', '33'),
	(2, '61', '38', '16', '68', '51'),
	(3, '80', '54', '62', '87', '45'),
	(4, '73', '39', '64', '77', '22'),
	(5, '49', '82', '32', '56', '41'),
	(6, '68', '8', '30', '35', '1'),
	(7, '20', '21', '22', '23', '24'),
	(8, '61', '38', '16', '68', '51'),
	(9, '1', '43', '72', '10', '33'),
	(10, '80', '54', '62', '87', '45'),
	(11, '49', '82', '32', '56', '41'),
	(12, '1', '43', '72', '10', '33'),
	(13, '61', '38', '16', '68', '51'),
	(14, '80', '54', '62', '87', '45'),
	(15, '73', '39', '64', '77', '22'),
	(16, '49', '82', '32', '56', '41'),
	(17, '61', '38', '16', '68', '51'),
	(18, '80', '54', '62', '87', '45'),
	(19, '49', '82', '32', '56', '41'),
	(20, '61', '38', '16', '68', '51');