Запрос:
SELECT * FROM table WHERE s=1 ORDER BY id
Получил ряд id: 2,5,6,7,9,11,12,15,16,17,18,20
Каким оператором MySQL можно вытащить из вышеуказанного ряда:
2,5,6,7,12,15,16,17
?
Условие отбора - оставить числа, которые составляют пару - само число и оно же плюс 10.
То есть берем 2, прибавляем 10 (получается 12), в этом ряду есть число 12 - бинго! - обоих оставляем, далее берем 5 и ищем 5+10=15 - тоже есть оба двое - оставляем обоих и так далее, и вот мы подошли к 9 - прибавляем 10, получаем 19, такого числа нет, девятку удаляем.
Вот так не получилось:
SELECT *
FROM (SELECT *
FROM table
WHERE s=1 ORDER BY id) aa
WHERE ((aa.id MOD 10)=0)
Попробуйте использовать оператор exists
:
SELECT id
FROM test t1
WHERE EXISTS
(SELECT id
FROM test t2
where t2.id in (t1.id + 10, t1.id - 10))
Пример на sqlfiddle.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При старте ubuntu 14 tomcat стартует автоматом но не видит бд и выводит 500 статус на реквесты, как можно это исправить? При рестарте из IDE все работает...
У меня есть таблица a с varhar массивом на id в b таблицеК примеру (1,2,3,4,5,6)