如何编写MySQL if else endif语句?

时间:2013-03-04 02:43:35

标签: mysql sql sql-update sql-insert

我想要一个MySQL的简单示例if if else endif语句。

我想做这样的事情(在Java中):

SELECT COUNT(*) FROM  `table` WHERE  `userID` =  1

if(count == 0){
  INSERT INTO  `table` (`userID`,`A` ,`B`)VALUES ('1',  '323',  '232')
}
else{
  UPDATE  `table` SET  `A` =  '323', `B` =  '232' WHERE  `userID` =1
}

2 个答案:

答案 0 :(得分:8)

MySQL有INSERT ON DUPLICATE KEY UPDATE,如果值已经存在,您可以更新,如果不存在,则允许更新。

首先,您需要设置UNIQUE约束

ALTER TABLE myTable ADD CONSTRAINT tb_uq UNIQUE (ID)

如果您希望ID是唯一的,那就是它。 (这只是一个例子

INSERT INTO tableName(userID, A, B) 
VALUES (1, 323, 232)
ON DUPLICATE KEY
UPDATE  A = 323,
        B = 232

答案 1 :(得分:5)

if语句(在存储块中):

IF search_condition THEN statement_list
    [ELSEIF search_condition THEN statement_list] ...
    [ELSE statement_list]
END IF

或if函数(内联):

IF(expr1,expr2,expr3)

的作用如下: IF(条件,what_to_do_if_true,what_to_do_if_false) 最后一部分与'else'相同。 if-else-if需要嵌入,如:

SELECT IF( id==1, "1", IF( ID==2, "2", "Neither" );

在大多数编程语言中,这与此相同:

if( id == 1 ) {
    print "1"
} elsif( id == 2 ) {
    print "2"
} else {
    print "Neither"
}