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);

依此类推,值总是不同的,所以我很难找到一种方法将其放入一个查询中,在该查询中我仍然可以获得不同值的不同行数,这可能吗?

我可以测试该行以查看它是否与该值匹配

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 回答