Как выбрать непоследовательные строки в MySQL? - PullRequest
5 голосов
/ 17 марта 2010

Если первичными ключами записей являются 1,3,4,5,6,8

Я хочу выбрать записи с помощью pk: 1,6

Примечание

Я не знаю, какие идентификаторы непоследовательны

Ответы [ 5 ]

7 голосов
/ 17 марта 2010
SELECT *
FROM your_table AS a
    LEFT JOIN your_table AS b
        ON a.key_column = b.key_column - 1
WHERE b.key_column IS NULL
2 голосов
/ 17 марта 2010

Как насчет этого?

SELECT
    *
FROM
    [MyTable]
WHERE
    [MyId] NOT IN
(
    SELECT
        [MyId] - 1
    FROM
        [MyTable]
)
2 голосов
/ 17 марта 2010

Почему бы не использовать предложение where в запросе SQL?

select *
from your_table
where id in (1, 6)
1 голос
/ 17 марта 2010

Помните, что в выбранной вами БД строки, как правило, не являются "последовательными", если вы не заказали их специально. Они просто оказываются в правильном порядке, если вы не указали заказ по.

0 голосов
/ 22 августа 2012

Небольшое улучшение для решения, предложенного Робин Дей

SELECT
    [MyId] + 1
FROM
    [MyTable]
WHERE
    [MyId] NOT IN
(
    SELECT
        [MyId] - 1
    FROM
        [MyTable]
)
ORDER BY [MyId] + 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...