MySQL: получение последнего идентификатора из повторяющихся записей в таблице - PullRequest
0 голосов
/ 08 марта 2012

Я пытаюсь получить последний идентификатор из дубликата записи в моей таблице, не используя отметку времени для проверки.

SELECT *
FROM    `table`
WHERE   `title` = "bananas"

-

table
id title
-- -----
1  bananas
2  apples
3  bananas

В идеале, я хочу получить ID 3

Ответы [ 3 ]

4 голосов
/ 08 марта 2012

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

Если вы хотите вернуть последнюю строку, вы можете просто использовать функцию MAX ()

SELECT MAX(id) FROM TABLE

Хотя я определенно рекомендую попытаться определить, что делает этот ряд "последним". Если это только потому, что он имеет самый высокий столбец [id], вы можете рассмотреть, что произойдет в будущем. Что если вы хотите объединить две базы данных, которые используют одни и те же данные? Выход из столбца [id] может быть не лучшим решением. Если вы можете, я предлагаю столбец с датами [LastUpdated] или [Added] для вашего дизайна.

0 голосов
/ 08 марта 2012
 select max(a.id) from mydb.myTable a join mydb.myTable b on a.id <> b.id and a.title=b.title;
0 голосов
/ 08 марта 2012

я предполагаю, что идентификаторы автоинкрементны,

Вы можете посчитать, сколько у вас строк, сохранить их в переменной, а затем задать предложение WHERE =, чтобы проверить, какая переменная хранит сколько у вас строк.

НО это хакерское решение, потому что если вы удаляете строку и идентификатор не уменьшается, вы можете в конечном итоге пропустить идентификатор.

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