Попытка получить запрос на работу. У меня есть адрес электронной почты как переменная и вам нужно обновить все строки в этом рейтинге, которые находятся выше соответствующей записи. Запрос:Добавить запрос SELECT в UPDATE?
UPDATE quiz_1_highscore
SET rate = rate - 1
WHERE rate >= (SELECT rate FROM quiz_1_highscore WHERE email = ?)
Затем я связываю параметр для сообщения электронной почты из формы submit, но запрос не работает.
Я не хочу делать два вызова в базе данных - один для получения ставки в этой строке электронной почты, а второй для выполнения обновления. Могу ли я сделать все это в одном запросе?
EDIT:
Просто пытаюсь добавить Кайюса комментарий:
UPDATE quiz_1_highscore AS T1 SET T1.rate = T1.rate - 1 WHERE T1.rate >= (SELECT MAX(T2.rate) FROM quiz_1_highscore AS T2 WHERE T2.email = ?);
Эта работа, если я запускаю его в "MySQL workbrench" - но в моих PHP файлов я получаю эту ошибку -
ErrorSQLSTATE[HY000]: General error: 1093 Table 'T1' is specified twice, both as a target for 'UPDATE' and as a separate source for data
ПОМОГИТЕ: \
Какие СУБД вы используете? –
* но этот запрос не работает *: Как он не работает? Вы получаете сообщение об ошибке, что это такое? И где вы используете SQL? Это не похоже на вопрос SQL. – sstan
Только одна запись должна быть с электронной почтой или несколькими? –