Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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 比较SQL语句if-else样式_Php_Mysql_Sql - Fatal编程技术网

Php 比较SQL语句if-else样式

Php 比较SQL语句if-else样式,php,mysql,sql,Php,Mysql,Sql,是否有一种方法可以检查一个值是否存在于另一个表中,并在该值不存在时运行不同的语句 例如: 如果在products\u image表中未找到prod\u id,则运行code-One否则运行code-Two: 代码1: DELETE FROM $table WHERE $table.id ='$product_id SELECT prod.id, img.product_id FROM `default_ps_products` prod INNER JOIN `default_ps_produ

是否有一种方法可以检查一个值是否存在于另一个表中,并在该值不存在时运行不同的语句

例如:

如果在
products\u image
表中未找到
prod\u id
,则运行
code-One
否则运行
code-Two

代码1:

DELETE FROM $table WHERE $table.id ='$product_id
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
代码2:

DELETE FROM $table WHERE $table.id ='$product_id
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

如果这必须完全包含在数据库中,我会考虑将其作为存储过程实现

大概是这样的:

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//  

请记住,这可能并不完美,我还没有测试过。只是一个例子

但是,您需要执行两个SQL查询,其中第一个是必需的。您可以使用php执行第一个查询,如果它返回零行,您可以使用php的
if-else
语句执行代码1,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查询。

在这里您可以找到您想要的参考资料