SQL UPDATE查询失败,LIMIT 1,但与LIMIT 2一起使用

时间:2015-01-29 18:03:52

标签: php mysql sql phpmyadmin sql-update

我的php脚本中的查询有一个奇怪的问题。

我有一个包含数千行的表,所有行都匹配下面的查询,所以我(想)使用LIMIT 1只更新其中一行。

当我在我的脚本中运行这些查询并通过phpMyAdmin:

查询1返回受影响的1行':

UPDATE licenses SET license_refunded = 'no'
WHERE license_status = 'available'
ORDER BY license_id ASC
LIMIT 1;

查询2返回' 0行受影响':

UPDATE licenses SET license_refunded = 'no'
WHERE license_status = 'available'
AND license_years='1'
ORDER BY license_id ASC
LIMIT 1;

查询3返回受影响的2行':

UPDATE licenses SET license_refunded = 'no'
WHERE license_status = 'available'
AND license_years='1'
ORDER BY license_id ASC
LIMIT 2;

如您所见,查询1和查询2之间的唯一区别是" AND license_years =' 1'",查询2和查询3之间的唯一区别是LIMIT 1和LIMIT 2。

任何人都可以对此有所了解,为什么查询2不影响1行?

通过mysql客户端(Linux终端)运行时,查询2会更新1行(应该如此)。

这是一个php / mysql错误吗?

1 个答案:

答案 0 :(得分:0)

这对我来说只是你的预期

http://sqlfiddle.com/#!2/c69f0/1/0