使用1个查询从mysql表中选择一个值

时间:2011-09-21 13:17:50

标签: php mysql

table:config

+--------+---------+
| c_name | c_value |
+--------+---------+
|   a    |    1    |
|   b    |    2    |
|   c    |    1    |
+--------+---------+

我有两个SQL查询:

$first = mysql_fetch_array(mysql_query("SELECT c_value FROM config WHERE c_name = 'a' "));
$second = mysql_fetch_array(mysql_query("SELECT c_value FROM config WHERE c_name = 'b' ")); 

我有这些代码:

echo $first["c_value"]; // output will be 1
echo $second["c_value"]; // output will be 2

我可以用1 sql查询做同样的工作吗?

5 个答案:

答案 0 :(得分:6)

SELECT c_value 
FROM config 
WHERE c_name IN ('a', 'b')

答案 1 :(得分:4)

$result=mysql_query("SELECT c_value FROM config WHERE c_name = 'a' OR c_name='b' ");


while($row = mysql_fetch_array($result)){
    echo $row['c_value'];
}

答案 2 :(得分:2)

SELECT c_name, c_value 
FROM config 
WHERE c_name IN('a', 'b');

while($row = mysql_fetch_assoc($result)){
    echo $row['c_name'] . " = " . $row['c_value'] . "<br/>";
}

输出:

a = 1
b = 2

答案 3 :(得分:1)

如果你想要关联数组,请使用mysql_fetch_assoc。

答案 4 :(得分:1)

第一个选项:

$result=mysql_query("SELECT c_value FROM config WHERE c_name in ('a','b') ");

while($row = mysql_fetch_array($result)){
    echo $row['c_value'];
}

OutPUt

1
2

你也可以使用它(不使用循环):

$O_Value = mysql_fetch_array(mysql_query("SELECT A.c_value as first_Value, B.c_value as second_Value FROM config A join config B on B.c_name = 'b' and A.c_name  = 'a' "));

echo $O_Value["first_Value"]; // *output will be 1*
echo $O_Value["second_Value"]; // *output will be 2*