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查询。在这里您可以找到您想要的参考资料