5

MySQL の 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
}
4

2 に答える 2

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
于 2013-03-04T02:58:18.200 に答える
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( condition, 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"
}
于 2013-03-04T02:59:51.037 に答える