Отсортировано поле rev в обратном порядке, а затем сгруппировано по идентификатору, который дал первую строку каждой группы, которая является самой высокой величиной rev.
SELECT * FROM (SELECT * FROM table1 ORDER BY id, rev DESC) X GROUP BY X.id;
Проверено в http: //sqlfiddle.com/ со следующими данными
CREATE TABLE table1
(`id` int, `rev` int, `content` varchar(11));
INSERT INTO table1
(`id`, `rev`, `content`)
VALUES
(1, 1, 'One-One'),
(1, 2, 'One-Two'),
(2, 1, 'Two-One'),
(2, 2, 'Two-Two'),
(3, 2, 'Three-Two'),
(3, 1, 'Three-One'),
(3, 3, 'Three-Three')
;
Это дало следующий результат в MySql 5.5 и 5.6
id rev content
1 2 One-Two
2 2 Two-Two
3 3 Three-Two
Чтобы работать KeyListener
, компонент, который он зарегистрировал, ДОЛЖЕН быть настраиваемым и иметь фокус клавиатуры. Большинство контейнеров, таких как JComponent
и JPanel
, по умолчанию не настраиваются (и я был бы ОЧЕНЬ осторожен, прежде чем рассматривать их так). Это означает, что в тот момент, когда вы добавляете компонент, который может принимать фокус клавиатуры (и он получает фокус клавиатуры), ваш KeyListener
больше не будет работать.
Это одна из многих причин, по которым мы рекомендуем использовать ее , Вместо этого используйте API-интерфейс ключевых привязок, который позволяет, среди прочего, определять уровень фокуса, который потребуется компоненту для запуска привязок
См. Как использовать привязки клавиш для более подробной информации