mysql 怎么判断是否存在

telankes2000 2012-03-31 11:44:53


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

...全文
175 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yq510457 2012-04-04
  • 打赏
  • 举报
回复
if (NOT EXISTS  (select 1 from  tm_order_goods WHERE order_sn='149507122391385'))
BEGIN
SELECT '找不到订单149507122391385'
end
ELSE
BEGIN
SELECT '订单149507122391385已经存在'
END

是要用存储过程的,直接执行肯定通不过。

MySQL毕竟是开源的东西,性能上还是有差距的。
bijie521yl 2012-04-01
  • 打赏
  • 举报
回复
select 1 from tm_order_goods WHERE order_sn='149507122391385' 你看看是不是1这里有问题
bijie521yl 2012-04-01
  • 打赏
  • 举报
回复
select * from tm_order_goods WHERE order_sn='149507122391385' 直接操作一把,在你的程序里如果返回空就是没找到,反之找到,一句话的问题搞那么复杂干什么
xieyueqing 2012-04-01
  • 打赏
  • 举报
回复
毕竟是免费的东西.从功能上来说,mysql比SQLServer差太多了。。
rucypli 2012-03-31
  • 打赏
  • 举报
回复
封装到存储过程中
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
WWWWA 2012-03-31
  • 打赏
  • 举报
回复
MYSQL不支持匿名块,必须在SP中才行
telankes2000 2012-03-31
  • 打赏
  • 举报
回复
版本是5.5.21
一定要放到存储过程里面才行吗
这只是个简单判断 我不想写个存储过程
不能像sqlserver那样写吗
WWWWA 2012-03-31
  • 打赏
  • 举报
回复
你的代码,运行环境
在5.5下测试通过
telankes2000 2012-03-31
  • 打赏
  • 举报
回复
还是不行 语法错误
WWWWA 2012-03-31
  • 打赏
  • 举报
回复
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 ;
sxabu 2012-03-31
  • 打赏
  • 举报
回复
这是什么代码
jinguanding 2012-03-31
  • 打赏
  • 举报
回复
修改成:
BEGIN
if (NOT EXISTS (select 1 from tm_order_goods WHERE order_sn='149507122391385'))
SELECT '找不到订单149507122391385';
ELSE
SELECT '订单149507122391385已经存在';
END;


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

MySQL数据库开源软件版本 生产环境GA版本如何选择
ACMAIN_CHM 2012-03-31
  • 打赏
  • 举报
回复
这个应该在你的程序中实现。 MYSQL的SQL语句中不能执行这种IF,ELSE的过程语句。这类语句仅允许在MYSQL的存储过程中执行。


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

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧