MySQL запрос справки? - PullRequest
       7

MySQL запрос справки?

1 голос
/ 09 августа 2009

У меня есть таблица с
' id ' в качестве основного поля и установлен в автоинкремент.
' name ' типа varchar ..
' категория ' типа varchar ..

Содержание таблицы ::.
* id = 1, имя = abc, категория = тв
* id = 2, имя = abc, категория = радио
* id = 3, имя = abc, категория = тв
* id = 4, имя = abc, категория = радио
* id = 5, имя = abc, категория = телевизор
* id = 6, имя = abc, категория = телевизор


Теперь я хочу выбрать последние строки, где category = "tv", т.е. строка 5, только строка 6
Это всего лишь пример того, что в реальной таблице может быть много категорий, я надеюсь, что я ясно изложил свою проблему ...
Пожалуйста, помогите ....

из полученных ответов ... этот запрос показывает результаты, как я хочу их ::.

SELECT * FROM test WHERE id > (SELECT id FROM test WHERE category !="tv" ORDER BY id DESC LIMIT 1)

но когда я добавляю еще одну строку в мою таблицу, запрос не дал результатов, и я могу понять, почему ..
$$$$ Мне нужен последний блок определенной категории $$$ $

1 Ответ

2 голосов
/ 09 августа 2009

Я думаю, это то, что вам нужно.

SELECT * FROM table
    WHERE id >
        (SELECT id FROM table
            WHERE category !=
                (SELECT category FROM table
                    ORDER BY id DESC LIMIT 1)
            ORDER BY id DESC LIMIT 1);

Самым внутренним SELECT является поиск категории последнего блока категории. Середина выбора находит идентификатор последней строки, которая отличается от этой категории. Затем внешний выбор выбирает все строки после этого идентификатора. Таким образом, он найдет все строки, которые являются частью окончательного блока категории.

EDIT:

SELECT * FROM table
    WHERE category = 'radio' && id >
        (SELECT id FROM table
            WHERE category != 'radio' && id <
                (SELECT id FROM table WHERE category = 'radio' ORDER BY id DESC LIMIT 1)
            ORDER BY id DESC LIMIT 1)

Я думаю, что должен делать то, что вам нужно. Обратите внимание, что есть 3 места, которые нужно поместить в категорию, которую вы ищете (в данном примере это «радио»).

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