Я намагаюся знайти просте рішення Mysqlпроблема. Проблема в тому, що у мене є 2 стовпчики A і B, а в деяких рядках у цих стовпцях є дані X і Y відповідно. Тепер у мене ці дані представлені як нижче (лише приклад). У таблиці також можуть бути інші дані, представлені нижче.
А | Б
X | Y
X | Z
Ж | Y
X | Y
S | Т
X | Т
S | Y
Тепер я хочу запустити запит, який знаходить X і Y вїх відповідних стовпців, але показує їх за пріоритетом. Тобто спочатку повинні з’являтися стовпці, у яких X і Y з’являються разом, а потім - колони з окремими стовпцями.
Будь ласка, зауважте, що стовпців може бути більше, і пріоритетність даних буде застосовуватися відповідно. Чим більше стовпців збігається, тим більше має бути їх пріоритетом під час отримання результатів.
Порівняння даних проводиться лише для одного поля.
Я просто досліджую, чи міг би вирішити цю ситуацію Mysql або мені доведеться подивитися на щось із PHP.
Відповіді:
1 для відповіді № 1Можна замовити за вартістю, це повинно бути вул. люблю
... ORDER BY FIELD(A, "X") DESC, FIELD(B, "Y") DESC
0 для відповіді № 2
Ви можете використовувати "формулу" для обчислення ваг для замовлення:
SELECT A, B FROM TEST
ORDER BY CASE WHEN (A = "X" AND B = "Y") THEN 1 ELSE 0 END DESC
Перевірте приклад в Інтернеті: http://sqlfiddle.com/#!9/6545e4/8