我的表有这样的数据
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次出现?它会可靠吗?
谢谢
简答:不
答案很长:
有点.因为返回行的顺序不是由SQL定义的.
从技术上讲,对DB的两个不同请求可以以不同的顺序返回行.所以即使你更新第三行,第三行也将取决于实现.
减轻这种情况的唯一方法是对行应用特定的排序.(订购)
我不认为它是语言规范的一部分,但大多数SQL实现允许您从查询中获取特定行.我不确定MYSQL的具体细节是什么,但快速google得到了这个页面:
http://forums.mysql.com/read.php?10,36490,36511
归档时间: |
|
查看次数: |
1409 次 |
最近记录: |