这是我的查询:
$student_id = 34;
$user_id = 1;
$lesson_id = 25;
$query = ("UPDATE lessons SET
assigned='1',
student_id='$student_id'
WHERE user_id='$user_id'
AND lesson_id='$lesson_id'")
我正在尝试运行更新以仅影响一行。我有一个这样的表:
_____________________________________
user_id|lesson_id|assigned|student_id
_______|_________|________|__________
1 |16 |1 |12
_______|_________|________|__________
1 |25 |0 |0
_______|_________|________|__________
1 |25 |0 |0
_______|_________|________|__________
1 |7 |1 |34
_______|_________|________|__________
1 |13 |1 |12
_______|_________|________|__________
1 |13 |0 |0
_______|_________|________|__________
当我执行此更新时,我发现所有匹配的行都已更新。因此,如果我尝试根据 Lesson_id 25 进行更新,两行都会发生变化。我只需要为每个查询更改一个。
我尝试将 LIMIT 1 添加到查询中,但它只允许我执行一次。我返回表单并再次将所有信息提交给查询,但它没有第二次执行。我觉得这很奇怪。
那么,我错过了什么?
最佳答案
尝试使用:
$query = ("UPDATE lessons SET
assigned='1',
student_id='$student_id'
WHERE user_id='$user_id'
AND lesson_id='$lesson_id'
AND assigned ='0' LIMIT 1");
关于php - 如何获取更新以仅影响一行(PHP/MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17548971/