Как использовать модоподобную операцию со случайной строкой текста в PHP или MySQL

0

У меня есть проблема, по которой я хочу упорядочить набор элементов случайным образом, но последовательно.

Например, учитывая набор: 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-запросе.

Спасибо!

  • 1
    Хеш строк и порядок по этому.
  • 0
    Конечно @Barmar, я знал, что это было невероятно очевидно, и мой мозг подводил меня - спасибо!
Теги:

1 ответ

3
Лучший ответ

Вычислить хэш строк и порядок:

SELECT string
FROM yourTable
ORDER BY MD5(string);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню