我在PHP中有一个查询。它要复杂得多,但为了清楚起见,我们可以说查询是:
$query = "SELECT * FROM my_table WHERE (foo = 'bar') OR (foo = 'bar_bar') OR (foo = 'bar_bar_bar')";
$result = mysql_query($query);
如果$result
符合foo = 'bar'
,foo = 'bar_bar'
或foo = 'bar_bar_bar'
,我们是否可以找到每一行while($row = mysql_fetch_assoc($result) {
switch($row['foo']) {
case 'bar' :
// we matched 'bar'
break;
case 'bar_bar' :
// we matched 'bar_bar'
break;
case 'bar_bar_bar' :
// we matched 'bar_bar_bar'
break;
}
}
?
我知道我可以这样做:
{{1}}
但是这样效率很低,因为你基本上是在查询你的结果,加上很多查询和结果太复杂了,不能这样做。
那么,是否有一种简单有效的查找方法,例如查询的哪个语句的索引匹配,或者我最好将查询拆分为单独的查询?
感谢。
答案 0 :(得分:1)
你为什么要检查?您可以根据结果直接编写所需的功能。 在函数中,您将编写而不是将其硬编码为名称,只需给出
$row['var_name']
。
答案 1 :(得分:0)
你必须从我的表中选择foo
$query = "SELECT foo FROM my_table WHERE (foo = 'bar') OR (foo = 'bar_bar') OR (foo = 'bar_bar_bar')";
$result = mysql_query($query);
//你可以简单地使用mysql_fetch_array()而不是mysql_fetch_assoc
while($row = mysql_fetch_array($result) {
switch($row['foo']) {
case 'bar' :
// we matched 'bar'
break;
case 'bar_bar' :
// we matched 'bar_bar'
break;
case 'bar_bar_bar' :
// we matched 'bar_bar_bar'
break;
}
}