查询多个条件

时间:2013-02-21 00:25:37

标签: php mysql sql database

我正在跟踪我网站上的一些内容并使用大量查询,因为它们需要不同的条件

例如

$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'){

}

多次,但看起来仍然不好

2 个答案:

答案 0 :(得分:2)

使用IN()

SELECT column FROM table WHERE column IN('Value1', 'Value2');

答案 1 :(得分: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];
}