Тогда я должен сложить все умножения. После этого есть некоторые
тривиальные вычисления с результатом суммы, применяя некоторый модуль
и дополняет, но это выходит за рамки этого вопроса.
Почему выходит за рамки этого вопроса, так как мы любим решать эти вещи.
Запрос
SELECT
11 - (SUM(vector_input.vector_input__summed) % 11)
FROM (
SELECT
vector.item * input.item AS vector_input__summed
FROM (
SELECT
DISTINCT
SUBSTRING(5432765432, vector_number_generator.number, 1) AS item
, vector_number_generator.number AS position
FROM (
SELECT
@vector_row := @vector_row + 1 AS number
FROM (
SELECT 0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
) AS row_1
CROSS JOIN (
SELECT @vector_row := 0
) AS init_user_params
) AS vector_number_generator
) AS vector
INNER JOIN (
SELECT
DISTINCT
SUBSTRING(2050364496, number_generator.number, 1) AS item
, number_generator.number AS position
FROM (
SELECT
@row := @row + 1 AS number
FROM (
SELECT 0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
) row1
CROSS JOIN (
SELECT 0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
) row2
CROSS JOIN (
SELECT @row := 0
) AS init_user_params
) AS number_generator
) AS input
ON
vector.position = input.position
) AS vector_input
Результат
| 11 - (SUM(vector_input.vector_input__summed) % 11) |
| -------------------------------------------------- |
| 8 |
См. демо
Если также следует использовать модуль 10, который, как я полагаю, должен быть
((11 - (SUM(vector_input.vector_input__summed) % 11)) % 10)
см. демо