Php 多次对值范围进行mysql\u查询检查
我需要多次检查值范围,到目前为止我是这样做的:Php 多次对值范围进行mysql\u查询检查,php,mysql,Php,Mysql,我需要多次检查值范围,到目前为止我是这样做的: <?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_
<?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";
}
?>
等等。。
我想这对服务器来说太多了,还有更好的方法。有什么想法吗?为什么不在SQL查询中使用GROUP BY:
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-199,99等等。虽然这可能不是一个好主意,但也可以使用变量来完成:
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;
我并不是说你的解决方案是理想的,但你没有说明它有什么问题。换句话说,你问的是“任何想法”。什么主意?你的索引设置正确了吗?像这样的简单查询对您的服务器来说应该不会太难。代码工作正常。我只是认为可以有一个更好的代码,只需要一个请求就可以完成工作,你也应该考虑使用mysql/pdoymysql,因为MySQL被表示为PHP 5.5。