0

有没有一种方法可以检查另一个表中是否存在某个值并运行不同的语句,如果是,我是否将NOT EXISTS因素考虑到我的 sql 语句中?

例子:

如果prod_id在表中未找到,products_images则运行Code Oneelse 运行Code 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

但是,您需要执行两个 SQL 查询,其中第一个是强制性的。您可以使用 php 执行第一个查询,如果它返回零行,则可以执行代码 1,否则使用 php 的if-else语句执行代码 2。

$result = mysql->query("SELECT product_id FROM table WHERE product_id = $prod_id");

if(mysqli_num_rows($result) !== 0)
    mysqli->query( CODE 1 )
else
    mysqli->query( CODE 2 )

如果你关心效率,你可以使用准备好的语句来执行 MySQL 查询。

于 2013-06-11T03:27:32.893 回答
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 回答