Один из способов сделать это с union all
.
(SELECT * FROM items
WHERE trumped = 1 AND `value`>=12110433
ORDER BY `value`-12110433
limit 1)
UNION ALL
(SELECT * FROM items
WHERE trumped = 1 AND `value`<12110433
ORDER BY 12110433-`value`
limit 1)
Если вы используете MariaDB версии 10.2 и выше, этого можно достичь с помощью функции row_number
.
select *
from (select i.*,
row_number() over(order by case when 12110433-`value`<0 then 1 else 0 end,`value`) as rnum_above,
row_number() over(order by case when 12110433-`value`>0 then 1 else 0 end,`value`) as rnum_below
from items i
) t
where 1 in (rnum_below,rnum_above)