0

我需要多次检查值范围,直到现在我都是这样做的:

<?php
$preischeck = mysql_query("SELECT preis FROM outfits WHERE aktiv = 'ja' and preis <= 100 $marke $farbe");
if(mysql_num_rows($preischeck) > 0) {
     echo "0 - 100 is there";
}
?>
<?php
$preischeck = mysql_query("SELECT preis FROM outfits WHERE aktiv = 'ja' and preis > 100 and preis <= 200 $marke $farbe");
if(mysql_num_rows($preischeck) > 0) {
     echo "100 - 200 is there";
}
?>

等等..我想这对服务器来说太多了,还有更好的方法。有任何想法吗?

4

2 回答 2

1

为什么不在GROUP BYSQL 查询中使用:

SELECT preis FROM outfits GROUP BY preis

如果你想要 100 块

SELECT FLOOR(preis / 100) * 100 FROM outfits GROUP BY FLOOR(preis / 100)

那么如果 0 在你的结果集中你知道 0 - 99,99,如果你的结果集中有 100 100-199,99 等等。

于 2013-11-02T13:58:36.673 回答
0

虽然这可能不是一个好主意,但也可以使用变量来完成:

SELECT 
    @range1 AS range1_count,
    @range2 AS range2_count,
    @range3 AS range3_count
FROM (
    SELECT
        IF(preis <= 10, @range1 := @range1 + 1, 0),
        IF(preis > 10 AND preis <= 100, @range2 := @range2 + 1, 0),
        IF(preis > 100, @range3 := @range3 + 1, 0)
    FROM
        (SELECT @range1 := 0) i1,
        (SELECT @range2 := 0) i2,
        (SELECT @range3 := 0) i3,
        outfits
    WHERE aktiv = 'ja'
) sub1 LIMIT 1;
于 2013-11-02T14:10:55.210 回答