MySQL中是否可以仅更新第n次出现?

ale*_*lex 0 php mysql

我的表有这样的数据

  products_parent_id | products_quantity
        2               5
        2               7
        2               9
        2               4  
Run Code Online (Sandbox Code Playgroud)

我的SQL语句看起来像这样(到目前为止):

UPDATE ' . TABLE_PRODUCTS . ' SET products_quantity = products_quantity +' . $order['products_quantity'] . ', products_ordered = products_ordered - ' . $order['products_quantity'] . ' WHERE products_parent_id = ' . (int)$order['products_id']
Run Code Online (Sandbox Code Playgroud)

现在我要做的是,更新只说第3次出现的products_parent_id(在这种情况下,从顶部开始的第3次是9)

要选择第三次出现,我在我的陈述LIMIT($ grade,1)结尾处使用了这个.

有没有办法使用MySQL更新,但只有第3 /第4/etc次出现?它会可靠吗?

谢谢

Mar*_*ork 5

简答:不

答案很长:

有点.因为返回行的顺序不是由SQL定义的.
从技术上讲,对DB的两个不同请求可以以不同的顺序返回行.所以即使你更新第三行,第三行也将取决于实现.

减轻这种情况的唯一方法是对行应用特定的排序.(订购)

我不认为它是语言规范的一部分,但大多数SQL实现允许您从查询中获取特定行.我不确定MYSQL的具体细节是什么,但快速google得到了这个页面:

http://forums.mysql.com/read.php?10,36490,36511