我需要在“main=1”时从数据库中选择一次,然后在“main=0”时从数据库中选择所有并在同一请求中使用它们。我可以在一个请求中执行此操作吗? 这是请求
1.
$result = $apt->query("SELECT * FROM cat where main='0'");
while($row=$apt->dbarray($result)){
@extract($row);
2.
$result = $apt->query("SELECT * FROM cat where main='1'");
while($row=$apt->dbarray($result)){
@extract($row);
我有点需要将它们合并到一个请求中,因为这会在执行 2 个请求时产生冲突。 谢谢
最佳答案
你有几个选择
SELECT * from cat where main = '0' or main ='1';
或
SELECT * from cat where main in ('0','1');
如果您所说的冲突是指维护两个查询之间的并发性,那么这种方式和将整个操作包装在事务中是确保并发性的唯一方法。
这是一个示例,说明如何使用上面的查询来模拟您提供的代码,但在单个查询中执行。
$result = $apt->query("SELECT * FROM cat where main='0' or main = '1' order by main");
while($row=$apt->dbarray($result)){
@extract($row);
switch ($main){
case 0:
// do stuff for when main = 0
break;
case 1:
// do stuff for when main = 1
break;
}
}
关于php - MySql 从具有多个条件的表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17120189/