Как я могу упорядочить по двум значениям с помощью подстроки - PullRequest
0 голосов
/ 27 мая 2020

Я использую PHP и MySQL для отображения некоторых данных на экране, но мне нужно упорядочить строки таблицы, используя 2 столбца.

В одном столбце Restricted У меня есть после json (["PT","GB"])

В другом столбце rate У меня есть десятичные значения от 0 до 10

Я ищу способ сначала заказ Restriced содержит GB Затем rate DES C (если я могу использовать только mysql, будет лучшим)

Текущий SQL на данный момент

SELECT * FROM Partner ORDER BY FIELD (restricted, '%GB%'), FIELD rate DESC

Я искал в Интернете решение, я занимаюсь этим почти месяц, решения не найдено

** EDIT ** Как это должно выглядеть

Partner Name      |    Countries     |   rate    |

AAAAA             | ["GB","FR","PT"] |    9.0    |
BBBBB             | ["GB","FR","PT"] |    8.8    |
CCCCC             | ["GB","FR","PT"] |    7.2    |

DDDDD             | ["US","FR","PT"] |    9.0    |
EEEEE             | ["US","FR","PT"] |    8.8    |
FFFFF             | ["US","FR","PT"] |    7.2    |

1 Ответ

0 голосов
/ 27 мая 2020

Вам необходимо выполнить следующие шаги:

  1. Разбейте свои рекорды на 2 части (имея «ГБ», а не имея «ГБ»).
  2. Отсортируйте оба набора записей отдельно в соответствии с вашим логином c
  3. объедините обе записи, используя UNION ALL

, поэтому запрос должен быть следующим:

(SELECT * FROM partner where restricted like '%GB%' ORDER BY restricted, 
rate DESC)
union all
(SELECT * FROM partner where restricted not like '%GB%' ORDER BY restricted, 
rate DESC)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...