mysql 如何判断是否存在

mysql 怎么判断是否存在

SQL code


  

if (NOT EXISTS  (select 1 from  tm_order_goods WHERE order_sn='149507122391385'))
BEGIN
    SELECT '找不到订单149507122391385'
end
ELSE
BEGIN
    SELECT '订单149507122391385已经存在'
END
这个语法通不过
应该怎么改呢




DELIMITER $$

CREATE PROCEDURE dd()

BEGIN

IF (NOT EXISTS (SELECT 1 FROM tm_order_goods WHERE order_sn=’149507122391385′)) THEN

SELECT ‘找不到订单149507122391385’;

ELSE

SELECT ‘订单149507122391385已经存在’;

END IF;

END$$

DELIMITER ;




你的代码,运行环境

在5.5下测试通过




MYSQL不支持匿名块,必须在SP中才行




封装到存储过程中

create procedure sp_test()

begin

if (NOT EXISTS (select 1 from tm_order_goods WHERE order_sn=’149507122391385′))

BEGIN

SELECT ‘找不到订单149507122391385’

end

ELSE

BEGIN

SELECT ‘订单149507122391385已经存在’

END

end




这个应该在你的程序中实现。 MYSQL的SQL语句中不能执行这种IF,ELSE的过程语句。这类语句仅允许在MYSQL的存储过程中执行。

这个可以直接在你的PHP或者VS的程序代码中实现。




修改成:

BEGIN

if (NOT EXISTS (select 1 from tm_order_goods WHERE order_sn=’149507122391385′))

SELECT ‘找不到订单149507122391385’;

ELSE

SELECT ‘订单149507122391385已经存在’;

END;


推荐:

淘宝和阿里巴巴去Oracle化事件 引发数据库技术人员大讨论

MySQL数据库开源软件版本 生产环境GA版本如何选择




这是什么代码




毕竟是免费的东西.从功能上来说,mysql比SQLServer差太多了。。




select * from tm_order_goods WHERE order_sn=’149507122391385′ 直接操作一把,在你的程序里如果返回空就是没找到,反之找到,一句话的问题搞那么复杂干什么




select 1 from tm_order_goods WHERE order_sn=’149507122391385′ 你看看是不是1这里有问题



SQL code

if (NOT EXISTS  (select 1 from  tm_order_goods WHERE order_sn='149507122391385'))
BEGIN
    SELECT '找不到订单149507122391385'
end
ELSE
BEGIN
    SELECT '订单149507122391385已经存在'
END


                        
  
  
                    
mysql 如何判断是否存在

相关文章:

你感兴趣的文章:

标签云: