У меня есть проблема, по которой я хочу упорядочить набор элементов случайным образом, но последовательно.
Например, учитывая набор: Apples Bananas Grapes Limes Pineapples
Я бы хотел, чтобы Limes Pineapples Apples Grapes Bananas
или Grapes Bananas Pineapples Apples Limes
Меня не волнует, что это за заказ, если это не что-то очевидное, как в алфавитном порядке/длина и т.д. Я бы предпочел не хранить этот порядок, и я хочу, чтобы он повторялся, поэтому я следую простому алгоритму,
Например, если это были цифры, а не строки, скажем, 10000 12345 12444 17654 199999
Я мог бы 10000 12345 12444 17654 199999
173 (или что-то еще) их и сортировать по этому 10000 12345 12444 17654 199999
, чтобы дать:
17654 199999 12345 10000 12444
Как я могу сделать что-то подобное с utf8-строками? Было бы неплохо иметь решение, которое работало бы произвольной длины, но в моей ситуации они могут варьироваться от 2 символов до 63 символов.
Я мог бы перебирать строку и суммировать все коды Юникода символов, но я чувствую, что, возможно, гораздо более хитрый/простой способ. В идеале я могу сделать относительно короткий подход в MySQL-запросе.
Спасибо!
Вычислить хэш строк и порядок:
SELECT string
FROM yourTable
ORDER BY MD5(string);