2011-08-05 3 views
0

Je voudrais créer un filtre de prix du tableau suivant. Fonctionne actuellement avec deux requêtes mysql d'abord créer une gamme de prix et la seconde va créer un compte par un appel ajax.Filtre de prix en utilisant mysql

enter image description here

est-il un autre moyen d'obtenir à la fois en simple requête.

Résultat escompté:

300- 400 (2) 
400- 500 (2) 
500- 600 (2) 
600- 620 (2) 
+4

Comment calculez-vous les fourchettes de prix? –

+0

Il y a 6 identifiants mais chaque gamme contient 2, comment cela se produit-il? – niktrs

Répondre

0

Disons que cette requête renvoie votre gamme de prix:

SELECT a, b FROM x WHERE ... blah blah blah 

maintenant. Si vous voulez compter c'est ce que je ferais:

SELECT 
    CONCAT(y.a,'-',y.b) "range", 
    (SELECT COUNT(*) FROM item WHERE price BETWEEN y.a AND y.b) "total" 
FROM 
    (SELECT a, b FROM x) AS y 

Je pense que cela devrait fonctionner. Je ne sais pas si c'est le meilleur moyen mais essayez-le?

+0

Merci. Laisse-moi essayer – abhis

0

En supposant que vous avez une table price_range avec low et high colonnes:

SELECT 
    CONCAT(low, '-', high) as range, 
    sum(price between low and high) as total 
FROM price_range 
CROSS JOIN item 

Si vous ne disposez pas d'une table, mais une requête à la place, faire semblable ci-dessus, mais avec la requête aliasé:

SELECT 
    CONCAT(low, '-', high) as range, 
    sum(price between low and high) as total 
FROM (select low, high from some_table) as price_range 
CROSS JOIN item