0

値が別のテーブル内に存在するかどうかを確認し、SQL ステートメントにNOT EXISTSを因数分解する場合は別のステートメントを実行する方法はありますか?

例:

がテーブルにprod_id見つからない場合は、 else runを実行します。products_imagesCode OneCode Two

コード 1:

DELETE FROM $table WHERE $table.id ='$product_id

コード 2:

SELECT prod.id, img.product_id FROM `default_ps_products` prod INNER JOIN `default_ps_product_images` img ON prod.id = img.product_id where prod.id = 92
4

2 に答える 2

0

これを完全にデータベースに含める必要がある場合は、ストアド プロシージャとして実装することを検討します。

このようなもの:

DELIMITER //  

CREATE PROCEDURE `myProc` (IN prodIdVar INT)  
    LANGUAGE SQL  
    DETERMINISTIC  
    SQL SECURITY DEFINER  
BEGIN  
    DECLARE prodCount INT
    SELECT count(*) INTO prodCount FROM products_images WHERE product_id=prodIdVar;
    IF prodCount = 0 THEN
        DELETE QUERY GOES HERE;
    ELSE
        SELECT QUERY GOES HERE;
    END IF;
END//  

これはおそらく完璧ではないことに注意してください。私はそれをテストしていません。ほんの一例です。

于 2013-06-11T03:25:14.910 に答える