Как сделать проверку хеша? - MySQL
Формулировка задачи:
Добрый день
Подскажите пожалуйста как сделать проверку хеша.
Есть такой хеш. Например
10010001111001....
всего 64 символа. они будут записываться в базу данных. строк будет много. тисяч 10.
потом после определенного действия я получаю новый хеш. и мне его нужно сверить с теми что в базе. и вывести те что больше всего близки к нему.
сравнение идет таким образом.
число х=64 (так как хеш 64 символа). дальше
первый символ хеша 1 сравниваем с первым символом хеша 2 --- и если не совпадение то х уменьшаем на 1
второй символ хеша 1 сравниваем с вторым символом хеша 2 --- и если не совпадение то х уменьшаем на 1
и т д
ето так бы мы сравнивали на php. а как ето организовать в базе данных я не знаю. брать все подряд из нее и сверять навернека это будет долго
Решение задачи: «Как сделать проверку хеша?»
textual
Листинг программы
select (substring( `Hash` , 1 , 1 ) = 1 ) + (substring( `Hash` , 2 , 1 ) = 0) + (substring( `Hash` , N , 1 ) = 'N' ) as Coof ... order by Coof desc
Объяснение кода листинга программы
В этом коде мы видим проверку хеша, представленную в виде SQL-запроса. Список шагов, описывающих, что происходит в коде, можно оформить в виде нумерованного списка с названиями и значениями переменных, заключенными в кавычки:
Hash
- это название переменной, которая содержит хеш, который нужно проверить.Coof
- это название переменной, которая будет использоваться для обозначения результата проверки хеша.N
- это значение, которое используется в запросе для обозначения позиции символа в хеше, начиная с 2-го символа. Теперь рассмотрим шаги запроса:(substring(
Hash, 1 , 1 ) = 1)
- это условие, которое проверяет, равен ли первый символ хеша 1.(substring(
Hash, 2 , 1 ) = 0)
- это условие, которое проверяет, равен ли второй символ хеша 0.(substring(
Hash, N , 1 ) = 'N' )
- это условие, которое проверяет, равен ли символ хеша на позицииN
символу 'N'. Все эти условия объединяются с помощью оператора+
, который выполняет логическое ИЛИ. Если хотя бы одно из условий истинно, то результат будет 1. Таким образом, переменнаяCoof
будет содержать результат проверки хеша. Затем результаты сортируются в порядке убывания с помощью оператораorder by Coof desc
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д