У меня есть следующий SQL:обновление выполняется на каждой строке таблицы
DROP TABLE IF EXISTS scores;
CREATE TABLE scores
(
id INTEGER PRIMARY KEY,
nom VARCHAR(10),
score INTEGER,
rang INTEGER
);
INSERT INTO scores
VALUES (1,'a',91,11),
(2,'b',92,12),
(3,'c',93,13),
(4,'d',94,14);
UPDATE scores
SET nom = 'foo',
score = 1,
rang = 0
WHERE id = (SELECT id
ORDER BY score DESC
LIMIT 1);
Я хочу обновить только строку с наибольшим количеством очков (то есть 94), но когда я выполнить запрос, каждая строка из таблицы принимают эти значения (demo).
+----+-----+-------+------+
| id | nom | score | rang |
+----+-----+-------+------+
| 1 | foo | 1 | 0 |
| 2 | foo | 1 | 0 |
| 3 | foo | 1 | 0 |
| 4 | foo | 1 | 0 |
+----+-----+-------+------+
Я не понимаю, почему? Может кто-то мне помочь, пожалуйста ?
Это правда! Спасибо :) – Erlaunis