@CreativeStory

Как написать верный запрос для одной таблицы?

Есть таблица с пользователями:

id | from_id | to_id
-----------------
1  | 20      | 32
2  | 76      | 10


Входящие данные - 2 переменные, они могут прийти в таком виде - ( 32, 20 ) или в таком - ( 20, 32 )

Какой можно сделать запрос чтобы на выходе получить верную строку?
  • Вопрос задан
  • 54 просмотра
Решения вопроса 2
New_Horizons
@New_Horizons
Бред:
ну допустим так:
select *
from `table_name`
where (from_id = 32 and to_id = 20)
   or (from_id = 20 and to_id = 32)
limit 1;


Только учтите, что если в таблице будут две записи: 32,20 и 20,32, то определить какая из них верная, на основе входных данных, не представляется возможным.
Ответ написан
Комментировать
rozhnev
@rozhnev Куратор тега SQL
Fullstack programmer, DBA, медленно, дорого
Еще один способ:
select * from tbl 
	where from_id + to_id = 20 + 32 and abs(from_id - to_id) = abs(20 - 32);

В этом запросе можно поменять порядок чисел и получить тот же результат.

Проверить SQL запрос
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы