繁体   English   中英

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

[英]selecting a value from mysql table with 1 query

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查询做同样的工作吗?

SELECT c_value 
FROM config 
WHERE c_name IN ('a', 'b')
$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'];
}
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

如果您希望关联数组作为结果,请使用mysql_fetch_assoc。

第一选择:

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

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

产量

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*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM