2

IF ELSESQL構文内でステートメントを実行する方法があるかどうか、または誰かが私を助けることができるかどうかを知りたかったCASE. 基本的に、列にファイル名 (文字列) が見つかった場合は、file_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;
        }

ありがとうございました。

4

1 に答える 1

2

1 つのオプションは、CASE と 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

これがSQL Fiddleです。

幸運を。

于 2013-01-25T18:16:39.533 に答える