Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果列具有要执行语法的字符串_Php_Sql_If Statement_Case - Fatal编程技术网

Php 如果列具有要执行语法的字符串

Php 如果列具有要执行语法的字符串,php,sql,if-statement,case,Php,Sql,If Statement,Case,我想知道是否有一种方法可以在SQL语法中执行ifELSE语句,或者是否有人可以帮助我处理CASE。基本上,如果在file\u url列中找到了文件名(字符串),则更改我要使用辅助信息的位置。我希望我的例子能帮助进一步解释我想做什么 $sql = "SELECT vm.file_url FROM #__virtuemart_medias AS vm INNER JOIN #__virtuemart_product_medias AS pm ON vm.virtuemart

我想知道是否有一种方法可以在SQL语法中执行
if
ELSE
语句,或者是否有人可以帮助我处理
CASE
。基本上,如果在
file\u url
列中找到了文件名(字符串),则更改我要使用辅助信息的位置。我希望我的例子能帮助进一步解释我想做什么

    $sql = "SELECT vm.file_url FROM #__virtuemart_medias AS vm 
        INNER JOIN #__virtuemart_product_medias AS pm ON vm.virtuemart_media_id = pm.virtuemart_media_id 
        WHERE pm.virtuemart_product_id = {$product_id} ";

    $result = mysql_query($sql); 
    $row = mysql_fetch_array($result); 
    $FILEURL = $row["vm.file_url"];  
    if ($FILEURL == "thumb_phone01.jpg"){       
            $sql .= "AND pm.ordering = 2";
    }
    else {
        $sql .= "AND pm.ordering = 1";
        }
            $this->_db->setQuery($sql);
            $img = $this->_db->LoadResult();
            return $img;
        }

谢谢。

一个选项是使用用例和REGEXP:

SELECT vm.file_url FROM #__virtuemart_medias AS vm 
    INNER JOIN #__virtuemart_product_medias AS pm 
            ON vm.virtuemart_media_id = pm.virtuemart_media_id 
    WHERE pm.virtuemart_product_id = {$product_id}
         AND pm.ordering = CASE 
                             WHEN vm.file_url  REGEXP 'thumb_phone01.jpg' 
                                THEN 2 
                                ELSE 1 
                             END
这是你的电话号码


祝你好运。

。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,好的,谢谢。我不知道我在想什么,但这是一个更简单的答案+谢谢你!这很有效。我只是想知道如果有几个REGEXP值,您是否知道如何包含?