2013-06-05 187 views
0

我想写这样一个更新查询:在MYSQL中更新查询?

Update entryTable set type='String' Where ID='Entry_001' or SecondID='Entry_002' or ThirdID="Entry_003" or BackupID="Entry_004" 

但它的作用是,它更新我的表,如果发现任何上述参数即ID,SecondID,ThirdID,BACKUPID的。

但我必须编写一个更新查询,其中用户可以传递任何参数,我必须根据用户传递的参数进行过滤,即用户只能传递ID或他可以传递ID和SecondID,或者他可以传递通过SecondID或ThirdID或全部或他只能通过BackupID等。基本上我想写一个更新查询,将接受任何参数和基于这些参数更新。希望你能理解我的问题。提前致谢。

+0

哪里是执行此查询的服务器端语言的代码 –

回答

2

您应该更仔细地尝试撰写您的查询,而不是总是添加所有条件。目前还不清楚你使用什么语言或框架来获得这个查询,所以我不能在那里提供具体的建议。

结果是你这个开始:

UPDATE entryTable SET type='String' WHERE 

然后你会附加条件,一个接一个。它通常最好将这些添加到一个数组,然后加入用“或”或者“和”数组要求:

[ [ "ID=?", "Entry_001" ], [ "SecondID=?", "Entry_002" ] ] 

这将转化为:

[ "UPDATE entryTable SET type='String' WHERE ID=? OR SecondID=?", "Entry_001", "Entry_002" ] 

然后你会使用您的数据库库的转义功能可以将这些占位符和值绑定在一起。

你可能想尝试和盲目地发出更新之前获取记录,也再更新基于单独的主键:

SELECT ID FROM entryTable WHERE ID='Entry_001' ... 

然后,如果返回一条记录进行更新:

UPDATE entryTable SET type='String' WHERE ID=? 

如果它返回多个记录,您会提示用户更好地定义他们的搜索。