Получить список уникальных идентификаторов с последовательными номерами в столбце - PullRequest
0 голосов
/ 12 июня 2018

Я не уверен, что это можно сделать одним только запросом mysql, но у меня есть таблица в следующем формате:

+----+-----------+-----------------+-------+
| id | recipe_id |  ingredient_id  | order |
+----+-----------+-----------------+-------|
| 1  |     1     |       26        |   2   |
+----+-----------+-----------------+-------|
| 2  |     1     |       95        |   1   |
+----+-----------+-----------------+-------|
| 3  |     1     |       42        |   3   |
+----+-----------+-----------------+-------|
| 4  |     2     |       22        |   1   |
+----+-----------+-----------------+-------|
| 5  |     2     |       15        |   2   |
+----+-----------+-----------------+-------|
| 6  |     2     |       1         |   3   |
+----+-----------+-----------------+-------|
| 7  |     3     |       95        |   1   |
+----+-----------+-----------------+-------|
| 8  |     3     |       33        |   2   |
+----+-----------+-----------------+-------|
| 9  |     3     |       23        |   3   |
+----+-----------+-----------------+-------|

Я хотел создать список всех recipe_id, которыеиметь последовательные order номера.например: 1, 2, 3 и т. д. (например, recipe_id 2), но если их нет, например, recipe_id 1 имеет 2, 1, 3, значит, он не в порядке.

Я использую php, но я хотел знать, возможно ли это сначала с помощью одного только mysql.

1 Ответ

0 голосов
/ 12 июня 2018

Вы можете использовать это, чтобы получить все рецепты, где номера заказов не увеличиваются с идентификатором

SELECT * FROM mytable AS a, mytable AS b 
WHERE ((a.id < b.id AND a.order > b.order) OR (a.id > b.id AND a.order < b.order)) AND a.recipe_id = b.recipe_id

И этот, чтобы получить все рецепты с этими заказами в одну строку

SELECT recipe_id, MAX(`order`)-MIN(`order`)+1=COUNT(`order`), GROUP_CONCAT(`order`) 
FROM mytable GROUP BY recipe_id

Это только начало, но я надеюсь, что это поможет вам

Я создаю скрипку https://www.db -fiddle.com / f / dakAHH5YXt3o1rahXFznLy / 0

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