Выбрать все предыдущие значения столбца столбца - PullRequest
0 голосов
/ 19 мая 2018

У меня есть таблица Product как

Start    End
 A        M
 M        T
 T        F

Мне нужно получить все предыдущие значения входного значения.Например, если input равен T, запрос должен возвращать A, M. Если input равен M, он должен возвращать A. Для F вывод должен быть A, M, T. Я пробовал самостоятельное соединение, но не смог получить результат.

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

Немного ответа, но слишком долго для комментария ...

(за исключением MySQL 8.0) в MySQL нет встроенной рекурсии.Вместо этого варианты включают:

  • присоединение таблицы к себе так часто, как это может потребоваться
  • переключение на другую модель (например, Nested Set )
  • обработка рекурсии на уровне приложения (например, с небольшим количеством PHP)

Вот пример первого варианта:

http://sqlfiddle.com/#!9/355414/4

0 голосов
/ 19 мая 2018

Вы можете добавить столбец заказа, чтобы идентифицировать предыдущие столбцы.Например, primary key, как идентификатор будет работать.После этого вы можете выполнить запрос наподобие

SELECT GROUP_CONCAT(start) preceding_val FROM table_name WHERE id < (SELECT id FROM table_name WHERE end=your_value)

, это даст вам строку со всеми предыдущими запятыми начального значения, разделенными для заданного вами конечного значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...