Как мне условно отсортировать второй столбец, используя пользовательскую функцию MySQL? - PullRequest
0 голосов
/ 01 ноября 2011

У меня есть набор результатов, который я должен отсортировать довольно сложным способом.Есть два поля (A и B), которые используются в сортировке, и алгоритм выглядит следующим образом:

  1. Сортировка по полю A
  2. Затем, если поле A содержитподстрока K, сортировка по полю B с помощью пользовательской функции F (см. ниже).Если поле A не содержит K, то встроенная сортировка для B вполне подходит.

Дополнительная информация:

  • Поле A является VARCHAR.
  • Поле B является целым числом, которое может иметь следующие значения: {1, 2, 3, 4, 5}.
  • Функция F проста как "сортировать значения следующим образом: {4, 5, 1, 2, 3} ".

Как я могу сделать это в MySQL через запрос SQL?Я вынужден сделать это на стороне города?

1 Ответ

3 голосов
/ 01 ноября 2011
…
ORDER BY
  A,
  CASE WHEN A LIKE CONCAT('%', K, '%') THEN Func(B) ELSE B END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...