› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
qazwsxkevin
V2EX  ›  MySQL

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

  •  
  •   qazwsxkevin · Feb 11, 2022 · 2177 views
    This topic created in 1686 days ago, the information mentioned may be changed or developed.

    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 多个握手似乎不太好,能不能一条语句一步到位?

    谢谢解答啦。。。。

    4 replies  •  2022-02-12 17:47:45 +08:00
    lower
        1
    lower  
       Feb 11, 2022
    EXISTS
    rabbbit
        2
    rabbbit  
       Feb 11, 2022
    研究了一下 好像是这样?

    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
        3
    ilylx2008  
       Feb 11, 2022
    if 只能用在存储过程里
    onhao
        4
    onhao  
       Feb 12, 2022
    楼主可以参考下 这个 https://wuhao.pw/archives/268/ 和 @ilylx2008 说的差不多。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2509 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 09:40 · PVG 17:40 · LAX 02:40 · JFK 05:40
    ♥ Do have faith in what you're doing.