我有一个动态生成的update语句,它如下所示:
UPDATE `maildespatch` SET `RL_TktNumber`= Null ,`SxRemote_IP`= '::1' ,`SxRemotename`= 'Raks' WHERE `Table_ID` = 1 ,
UPDATE `maildespatch` SET `RL_TktNumber`= Null ,`SxRemote_IP`= '::1' ,`SxRemotename`= 'Raks' WHERE `Table_ID` = 2 ,
UPDATE `maildespatch` SET `RL_TktNumber`= Null ,`SxRemote_IP`= '::1' ,`SxRemotename`= 'Raks' WHERE `Table_ID` = 5 ,
UPDATE `maildespatch` SET `RL_TktNumber`= Null,`SxRemote_IP`= '::1' ,`SxRemotename`= 'Raks' WHERE `Table_ID` = '68'
数据来自用户对html表字段的输入,根据这些字段,通过ajax()调用动态生成这些语句。有没有办法保存所有这些数据,以便在mysql中更通用地保存/更新?我不想创建一个临时mysql表来保存数据,然后从主表更新。
3条答案
按热度按时间ldioqlga1#
您可以按如下方式运行这4个查询:
或者,如果以数组形式传递数据,则可以执行循环:
n3ipq98p2#
一种更通用的方法是在mysql中调用存储过程(即用户定义的函数-udf)并传递必要的参数。
存储过程是数据库中可重用的一段代码(如后端代码中的函数),可以封装一段逻辑。这里看一下存储过程的mysql文档。
使用它们,您可以任意通用—例如,为最常传递的值设置默认值(如
SxRemote_IP = '::1' ,SxRemotename = 'Raks'
)因此,您不必通过网络发送它们并在前端代码中省略它们。rqcrx0a63#
你需要一个
CASE
表达式:注意,如果
Table_ID
如果是整数列,则应该正确地与整数进行比较,例如WHERE
子句应如下所示: