以下的
当我运行php页面时,我有
我想要的是当脚本找到并填充第一个
也就是说,从所有
类似于以下内容:
谢谢。
CASE
语句在ID=10
时同时更新BET1
、BET2
、BET3
和BET4
。$S1=32
$sql="UPDATE TIMER-BOARD1
set BET1= case when BET1 IS NULL THEN $S1 else BET1 end ,
BET2= case when BET2 IS NULL THEN $S1 else BET2 end,
BET3= case when BET3 IS NULL THEN $S1 else BET3 end,
BET4= case when BET4 IS NULL THEN $S1 else BET4 end
WHERE ID = 10";
当我运行php页面时,我有
BET1 = 32
,BET2 = 32
,BET3 = 32
,BET4 = 32
。我想要的是当脚本找到并填充第一个
null
字段时退出。也就是说,从所有
BET1
,BET2
,BET3
,BET4 = NULL when ID =10
开始,当我运行php页面时,只更新BET1 = 32
。再次运行它时,更新BET2 = 32
,等等。类似于以下内容:
$S1=32
$sql="UPDATE TIMER-BOARD1
set BET1= case when BET1 IS NULL THEN $S1
( EXIT AND DON’T BOTHER ABOUT OTHER CASE STATEMENTS) else BET1 end ,
BET2= case when BET2 IS NULL THEN $S1
(EXIT AND DON’T BOTHER ABOUT OTHER CASE STATEMENTS) else BET2 end,
BET3= case when BET3 IS NULL THEN $S1
(EXIT AND DON’T BOTHER ABOUT OTHER CASE STATEMENTS) else BET3 end,
BET4= case when BET4 IS NULL THEN $S1
(EXIT AND DON’T BOTHER ABOUT OTHER CASE STATEMENTS) else BET4 end
WHERE ID = 10";
结果
Start values: ID=10 ,BET1=NULL, BET2=NULL, BET3=NULL, BET4=NULL.
Run the script 1ST time: ID=10, BET1=32, BET2 =NULL, BET3=NULL, BET4=NULL.
Run the script 2nd time: ID=10, BET1=32, BET2= 32, BET3=NULL, BET4 = NULL.
Run the script 3rd time: ID=10, BET1=32, BET2=32, BET3=32, BET4=NULL.
Run the script 4th time: ID=10, BET1=32, BET2=32, BET3=32, BET4=32.
Run the script 5th time or more: No null field, so no change.
如何编辑脚本以执行上述功能?
编辑
@ InoS Heo
如果您有时间,还有一个最后的问题。
在运行SQL之前,我的$S1=32。假设我有一个字符串susan而不是数字32。
如何更新您的脚本以适应以上类似的字符串?
$S1 =susan
UPDATE `TIMER-BOARD1`
set
ID = @UPDATED := 10,
BET1 = case when BET1 IS NULL THEN @UPDATED:= susan else BET1 end,
BET2 = case when @UPDATED = 10 AND BET2 IS NULL THEN @UPDATED:= susan else BET2 end,
…
BET4 = case when @UPDATED = 10 AND BET4 IS NULL THEN @UPDATED:= susan else BET4 end
WHERE ID = 10;
谢谢。
TIMER-BOARD1
set ID = @UPDATED := 10, BET1 = case when BET1 IS NULL THEN @UPDATED:= susan else BET1 end, BET2 = case when @UPDATED = 10 AND BET2 IS NULL THEN @UPDATED:= susan else BET2 end, … BET4 = case when @UPDATED = 10 AND BET4 IS NULL THEN @UPDATED:= susan else BET4 end WHERE ID = 10; 谢谢。 - user3106907