Между запросами [PostgreSQL и PHP] - PullRequest
2 голосов
/ 11 августа 2011

Я спрашивал, но это вводило в заблуждение, так что извините за это.у меня проблема.

у меня есть таблица рангов (rank_id, rank_name, rank_min, rank_max)

проста, если я хочу знать только один ранг

select * from ranks where (224 between rank_min and rank_max)

, но еслихочу знать более одного ранга, например, что 224, 338, 800 и т. д.

я могу использовать

select * from ranks where (224 between rank_min and rank_max) OR (338 between rank_min and rank_max) OR (800 between rank_min and rank_max)

, но я не знаю, может ли быть простой способ, например, использование

 IN(224,338,800)

и как написать запрос в PHP, который не является фиксированным, я имею в виду решение 1, используя множество МЕЖДУ ИЛИ.

в PHP, я знаю, является ли это запросом типа siple, подобным select* из рангов где (224 между rank_min и rank_max).просто па значение.но я не знаю, как, если более одного значения

, у любого тела есть трюк и пример, как это сделать.Я надеюсь, что этот вопрос не вводит в заблуждение

Спасибо

1 Ответ

2 голосов
/ 11 августа 2011

У меня была идея, я не знаю, лучше ли это, чем делать запрос динамически с PHP, но это стоит попробовать:

SELECT *
FROM ranks
INNER JOIN (SELECT unnest(ARRAY[224, 338, 800]) AS n) TT
    ON n BETWEEN rank_min AND rank_max;

Вам просто нужно динамически создать массив с помощью PHP, но это должно быть намного проще, чем весь запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...