Представьте себе таблицу MySql, подобную этой:
---------------------------
ListID | itemID | Item
---------------------------
List_1 | item_1 | Apple
---------------------------
List_1 | item_2 | Orange
---------------------------
List_1 | item_3 | Pear
---------------------------
List_2 | item_1 | Potatoes
---------------------------
List_2 | item_2 | ...
У меня есть функция getNextItem()
, которая увеличивает ItemID и использует SQL-запрос для получения следующего элемента:
SELECT * FROM items_tbl
WHERE listID = "$listId"
AND itemID = "$itemID"
LIMIT 1
Есть ли в SQL простой способ выяснить, является ли получаемый предмет последним в этом списке?
Я мог бы добавить столбец в таблицу и отметить последний элемент каждого списка, или я мог бы сделать другой запрос, получить наибольшее количество элементов и сравнить с моим списком текущий элемент или получить общее количество элементов в списке. список и отслеживать номер элемента по отношению к общему списку ... но все эти решения чувствуют себя как взломать.
Может кто-нибудь предложить что-то лучшее в SQL и немного объяснить, как он работает?