我的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错误吗?