MySQL 的 IF THEN 似乎不是这样用,还是语句有错误? 要完成这一的逻辑执行, HOW?

2022-02-11 18:54:13 +08:00
 qazwsxkevin

IF (SELECT chid FROM etid WHERE chid='888' LIMIT 1) THEN UPDATE etid SET checkcount=IFNULL(checkcount,0)+1,UpdateTime=NOW() WHERE chid='888' ELSE INSERT INTO etid (AID,BID,chid,UpdateTime) VALUES ('111','222','888',NOW()) END IF;

如果是: SELECT chid FROM etid WHERE chid='888' LIMIT 1
是有东西的
那么指定字段自加 1

如果非: 插入这数据

或许有着 REPLACE INTO 的那些方法。。。。 但主要还是想通过这个 IF 的情况,MySQL 如何根据 Ture/False ,

--->>[去执行两条完全不同方向的完全语句]

以自己掌握的知识,交由本端和远端交互,拆开查,本地判断,再交远端执行,N 多个握手似乎不太好,能不能一条语句一步到位?

谢谢解答啦。。。。

1381 次点击
所在节点    MySQL
4 条回复
lower
2022-02-11 19:31:48 +08:00
EXISTS
rabbbit
2022-02-11 20:47:56 +08:00
研究了一下 好像是这样?

DELIMITER //
CREATE PROCEDURE Test2()
BEGIN
IF EXISTS(SELECT * FROM ` item_list` WHERE id=1)
THEN SELECT 1;
ELSE SELECT 0;
END IF;
END //
DELIMITER ;
ilylx2008
2022-02-11 20:55:11 +08:00
if 只能用在存储过程里
onhao
2022-02-12 17:47:45 +08:00
楼主可以参考下 这个 https://wuhao.pw/archives/268/ 和 @ilylx2008 说的差不多。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/833283

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX