Intersection entre 2 intervalles d'entier
Yoyo
-
Yoyo -
Yoyo -
Bonjour,
J'ai une base de données qui répertorie des biens immo.
Le bien a une superficie définie, exemple 500m²
Et une valeur de divisibilité, exemple divisible à partir de 50m²
J'ai un moteur de recherche, qui cherche par intervalle de superficie:
entre 0 - 100m²
entre 100 - 300m²
entre 300 - 600m²
entre 600 - 1000m²
Mon bien doit donc apparaitre pour les intervalles 0-100, 100-300 et 300-600
Comment je dois faire ma requête SQL ?
Actuellement je n'arrive pas à l'afficher pour toutes les intervalles auxquels il appartient.
Merci d'avance
J'ai une base de données qui répertorie des biens immo.
Le bien a une superficie définie, exemple 500m²
Et une valeur de divisibilité, exemple divisible à partir de 50m²
J'ai un moteur de recherche, qui cherche par intervalle de superficie:
entre 0 - 100m²
entre 100 - 300m²
entre 300 - 600m²
entre 600 - 1000m²
Mon bien doit donc apparaitre pour les intervalles 0-100, 100-300 et 300-600
Comment je dois faire ma requête SQL ?
Actuellement je n'arrive pas à l'afficher pour toutes les intervalles auxquels il appartient.
Merci d'avance
A voir également:
- Intersection entre 2 intervalles d'entier
- Supercopier 2 - Télécharger - Gestion de fichiers
- 2 ecran pc - Guide
- Faire 2 colonnes sur word - Guide
- Whatsapp 2 - Guide
- Word numéro de page 1/2 - Guide
2 réponses
Bon j'ai une solution qui a l'air de fonctionner :
cas 1: (rooms <= 100 AND 100 <= space) OR (space >= 0 AND space <= 100)
cas 2: (rooms <= 300 AND 300 <= space) OR (space >= 100 AND space <= 300)
cas 3: (rooms <= 600 AND 600 <= space) OR (space >= 300 AND space <= 600)
cas 4: (rooms <= 1000 AND 1000 <= space) OR (space >= 600 AND space <= 1000)
cas 5: (rooms <= 2000 AND 2000 <= space) OR (space >= 1000 AND space <= 2000)
cas 6: space>'2000' OR rooms>'2000'
cas 1: (rooms <= 100 AND 100 <= space) OR (space >= 0 AND space <= 100)
cas 2: (rooms <= 300 AND 300 <= space) OR (space >= 100 AND space <= 300)
cas 3: (rooms <= 600 AND 600 <= space) OR (space >= 300 AND space <= 600)
cas 4: (rooms <= 1000 AND 1000 <= space) OR (space >= 600 AND space <= 1000)
cas 5: (rooms <= 2000 AND 2000 <= space) OR (space >= 1000 AND space <= 2000)
cas 6: space>'2000' OR rooms>'2000'
Comment je fais avec une intervalle 50-500 ?
SELECT nomdebien
FROM tablebien
WHERE m² > 50
AND m² < 500 ;
Ce que je te propose n'est qu'un exemple vue que je ne connais pas tes tables et les champs qui s'y trouvent.
Voici ce que j'avais fait et qui ne fonctionne pas non plus car cela ne rentre pas dans le cas 2 :
space = la superficie totale du bien (exemple 500)
rooms = la divisibilité du bien (exemple divisible à partir de 50)
case 1: $parts[] = "(space>'0' AND space<='100') OR (rooms>'0' AND rooms<='100')"; break;
case 2: $parts[] = "(space>='100' AND space<='300') OR (rooms>='100' AND rooms<='300')"; break;
case 3: $parts[] = "(space>='300' AND space<='600') OR (rooms>='300' AND rooms<='600')"; break;
case 4: $parts[] = "(space>='600' AND space<='1000') OR (rooms>='600' AND rooms<='1000')"; break;
case 5: $parts[] = "(space>='1000' AND space<='2000') OR (rooms>='1000' AND rooms<='2000')"; break;
case 6: $parts[] = "space>'2000' OR rooms>'2000'"; break;
Je sais que c'est du PHP, c'est pas ça le problème, c'est le WHERE de la requête SQL..
Pour te traduire, si je fais une recherche de biens pour une superficie de 100 à 300 m², on est dans le cas 2 qui dit d'utiliser le WHERE de la requête suivant :
(space>='100' AND space<='300') OR (rooms>='100' AND rooms<='300')