Запрос:
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.
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
При старте ubuntu 14 tomcat стартует автоматом но не видит бд и выводит 500 статус на реквесты, как можно это исправить? При рестарте из IDE все работает...
У меня есть таблица a с varhar массивом на id в b таблицеК примеру (1,2,3,4,5,6)