你如何在 mySQL 中实现 if/else 语句?

时间:2021-05-04 21:47:05

标签: mysql stored-procedures

我正在尝试创建一个存储过程,该过程会随着玩家在瓷砖周围移动而更新。目前,存储过程有效,表格会随着玩家移动而更新,但我想添加多用户功能,如果列中已有值,则不会更新行。

<头>
tileID tilePlayer
1 null
2 null
3 null
4 Player1

目前我可以像这样移动到另一个图块(从 tileID 4 移动到 tileID 3):

<头>
tileID tilePlayer
1 null
2 null
3 Player1
4 null

但我想让它在有玩家时不会移动到 tileID 3

<头>
tileID tilePlayer
1 null
2 null
3 Player2
4 Player1

所以,如果 tileID 3 = null ~ 它会更新到 player1

如果 tileID 3= player2 ~ 它不会更新并且 player2 将保持为 tileID 3 而 player1 将保持为 tileID 4

这是我更新位置的存储过程:

create procedure UpdateDataTile()
    BEGIN
UPDATE  tbl_tile SET tilePlayer = null WHERE tilePlayer = "player1";

UPDATE  tbl_tile t 
INNER JOIN
tbl_player p 
ON t.tileID = p.tileID 
SET t.tilePlayer = uname;

    END//
delimiter ;

本质上,我想实现一个执行如下操作的语句:

create procedure UpdateDataTile(IN `uname` varchar(100), `tileVal` int)
    BEGIN
    
If {
tbl_tile row 3 (or whatever is +1 or -1 current tilePlayer row) column tilePlayer != null {return}
}
else
DO this{
UPDATE  tbl_tile SET tilePlayer = null WHERE tilePlayer = uname;

UPDATE  tbl_tile t 
INNER JOIN
tbl_player p 
ON t.tileID = p.tileID 
SET t.tilePlayer = uname;
}
    END//
delimiter ;

我知道我不能像在 c# 等中那样使用 if/else 语句,但是有没有办法实现它?

0 个答案:

没有答案