這裏是我的查詢:如何獲取更新隻影響一個行(PHP/MySQL的)
$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,但它只允許我做一次。我又回到了表單,並再次將所有信息提交給了查詢,但它沒有再次執行。我認爲這很奇怪。
那麼,我錯過了什麼?
我要指出,我有重複的原因是,通過每個實例的同時,循環迭代,以提供用於製作各分配降低可選列表。 –
對於這兩條記錄來說,沒有什麼獨特的或獨特的,這使得無法對其中一個或另一個採取行動。爲什麼不添加一個名爲'attempt'的字段,每次給同一個學生分配相同的課程時都會增加? – DevlshOne
我認爲你真的應該看看你的軟件,並作出一些更改... – Teejay