首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP找出多语句mysql_query的哪一部分是匹配的?

如何使用PHP找出多语句mysql_query的哪一部分是匹配的?
EN

Stack Overflow用户
提问于 2014-07-15 18:16:51
回答 2查看 36关注 0票数 0

我在PHP中有一个查询。这要复杂得多,但为了清楚起见,我们假设查询是:

代码语言:javascript
复制
$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'匹配

我知道我可以简单地这样做:

代码语言:javascript
复制
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;
    }
}

但这是低效的,因为你基本上是在查询你的结果,而且许多查询和结果都太复杂了,不能这样做。

那么,有没有一种简单而有效的方法来查找,例如,查询的哪条语句被匹配的索引,或者我最好的选择是将查询拆分到单独的查询中?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-07-15 18:23:29

你为什么要检查这个?您可以根据结果直接编写所需的函数。在你要写的函数中,不用硬编码,只需给出一个名字

$row['var_name']

票数 1
EN

Stack Overflow用户

发布于 2014-07-15 19:18:47

你只需要从我的表格中选择foo

代码语言:javascript
复制
$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

代码语言:javascript
复制
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;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24755606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档