Подскажите с запросом на выбор

student174

Новичок
Подскажите как составить запрос на выборку,
нужно чтобы выбирались объекты которые лежат между двумя точками х1 и х2
SELECT * FROM markers_ussearch WHERE х1<='%s' AND х2>='%s'
с этим запросом всё хорошо работает, только если сначала вводить х1 а потом х2,
а если наоборот то уже не получится.
 

С.

Продвинутый новичок
А сравнить и поменять местами х1 и х2, если это необходимо?
 

student174

Новичок
А в одном запросе это нельзя ни как осуществить, может можно как нибудь составить выражения, чтобы не было необходимости самому местами менять х1 и х2?
 

С.

Продвинутый новичок
Не надо самому менять, напиши для этого программу на РНР, она будет менять за тебя..
 

WMix

герр M:)ller
Партнер клуба
если только через Ж
PHP:
SELECT *
FROM `markers_ussearch` us  , (
	SELECT '%s' as in_x1 , '%s' as in_x2
) v
WHERE 
	( v.in_x1 < v.in_x2 and us.x1 <= v.in_x1 and us.x2 >= v.in_x2 ) or 
	( v.in_x1 > v.in_x2 and us.x1 >= v.in_x1 and us.x2 <= v.in_x2 )
 

Ragazzo

TDD interested
WMix
<зануда мод>А в нормальных базах есть WITH и прочие CTE плюшки :D</зануда мод>
 

WMix

герр M:)ller
Партнер клуба
можно было
SET @a=%s написать, но оно по сути таже Ж... конечно же нужно на php сравнивать...

PHP:
sprint_f($sql, $x1>$x2 ? $x2: x1, $x1>$x2 ? $x1: x2 )
 

С.

Продвинутый новичок
Ну и зачем это жопничество выкладывать тут? Да еще и в извращенном виде (вложенный селект там совершенно не нужен). Мог бы свои интимные подробности при себе держать.
 

WMix

герр M:)ller
Партнер клуба
каждый понимает в меру воспитанности
 
Сверху