1

私は自分のサイトでいくつかのことを追跡していて、さまざまな条件が必要なため、多くのクエリを使用しています

例えば

$example = mysql_query("SELECT column FROM table WHERE column = 'Value1'");
$example_row = mysql_num_rows($example);

$example1 = mysql_query("SELECT column FROM table WHERE column = 'Value2'");
$example_row1 = mysql_num_rows($example1);

など、値は常に異なるので、これを1つのクエリにまとめる方法を見つけるのに苦労していますが、それでも異なる値に対して異なる行数を取得できますか?

行をテストして、値と一致するかどうかを確認できます

if ($row == 'value'){

}

複数回ですが、それでも悪いようです

4

2 に答える 2

2

使用するIN()

SELECT column FROM table WHERE column IN('Value1', 'Value2');
于 2013-02-21T00:26:36.090 に答える
0

値ごとのカウントが必要だと思います:

$values = ["value1", "value2", ...];
$query = "SELECT ";

for($i = 0; $i < count($values); $i++)
{
    $query .= "SUM(IF(column = '$values[$i]')) AS v$i";

    if($i != count($values) - 1)
        $query .= ","; //Only add ',' if it's not the last value

    $query .= " "; //We need the spaces at the end of every line
}

$query .= "FROM table";

//Let mysql do its work, run the query etc., store the resultset in $row;

結果セットを動的に反復処理できるようになりました。

$results = [];
for($i = 0; $i < count($values); $i++)
{
    $string = "v"+ $i;
    $results[] = $row[$string];
}
于 2013-02-21T01:11:53.040 に答える