【问题标题】:Update Query in MYSQL?在 MYSQL 中更新查询?
【发布时间】:2013-06-05 23:04:37
【问题描述】:

我正在尝试编写这样的更新查询:

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 或 all 或他只能通过 BackupID 等等。基本上我想编写一个更新查询,它将接受任何参数并根据这些参数进行更新。希望你明白我的问题。提前致谢。

【问题讨论】:

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

标签: mysql sql-update wso2dss


【解决方案1】:

您应该尝试更仔细地编写查询,而不是总是添加所有条件。不清楚您使用什么语言或框架来获取此查询,因此我无法提供具体建议。

结果是你会从这个开始:

UPDATE entryTable SET type='String' WHERE

然后您将一一附加条件。通常最好将这些添加到数组中,然后根据需要使用“OR”或“AND”连接数组:

[ [ "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=?

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

【讨论】:

    猜你喜欢
    • 2016-01-16
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多