Intersection entre 2 intervalles d'entier

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
A voir également:

2 réponses

termgsi Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   39
 
Bonjour,

Exemble :

SELECT nomdebien
FROM tablebien
WHERE m² > 0
AND m² < 100 ;
0
Yoyo
 
Merci, mais c'est pas aussi simple que ça....
Comment je fais avec une intervalle 50-500 ?
0
termgsi Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   39
 
Exemble :

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.
0
Yoyo
 
ta requête ne marche pas si je prend l'intervalle 0-100

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;
0
termgsi Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   39
 
Ceci n'est pas du SQL mais du PHP :D
0
Yoyo
 
Arf... tu m'aides pas là!
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')
0
Yoyo
 
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'
0