Answer the question
In order to leave comments, you need to log in
How to build a query with sorting by the best occurrence?
To clarify, I will immediately give an example:
Table:
CREATE TABLE `test` (
`A` varchar(255) NOT NULL,
`B` tinyint(1) NOT NULL,
`C` int(11) NOT NULL,
`D` int(11) NOT NULL
);
INSERT INTO `test`(`A`, `B`, `C`, `D`) VALUES ("STR1",true,1,1);
INSERT INTO `test`(`A`, `B`, `C`, `D`) VALUES ("STR2",true,2,2);
INSERT INTO `test`(`A`, `B`, `C`, `D`) VALUES ("STR1",true,2,1);
INSERT INTO `test`(`A`, `B`, `C`, `D`) VALUES ("STR3",false,1,2);
INSERT INTO `test`(`A`, `B`, `C`, `D`) VALUES ("STR4",false,2,2);
"STR1",true,1,1 // полное совпадение
"STR1",true,2,1 // 3 совпадение
"STR2",true,2,2 // 1 совпадение
"STR3",false,1,2 // 1 совпадение
"STR4",false,2,2 // нет совпадений
compare(A, valA) + compare(B, valB) + compare(B, valB) + compare(D, valD) AS coincidence
Answer the question
In order to leave comments, you need to log in
Any other ideas?SOUNDEX (Transact-SQL) .
So far it's something like this:
SELECT
`A`,
`B`,
`C`,
`D`,
IF (`A` = "STR1", 1, 0) +
IF (`B` = true, 1, 0) +
IF (`C` = 1, 1, 0) +
IF (`D` = 1, 1, 0)
AS `CC`
FROM `test`
ORDER BY `CC` DESC
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question