2013-05-02 5 views
6

Я пытаюсь выбрать значение из MySQL (total_points), а затем добавить к локальной переменной (new_points) и обновить total_points в ТОЧНОМ запросе, кто-нибудь знает, возможно ли это ...MySQL выбирает и обновляет в одном запросе

я в настоящее время.,

cursor = database.cursor() 
cursor.execute("""SELECT total_points FROM g_ent WHERE e_id =%s AND user =%s; 
UPDATE total_points = (total_points + %s)""" 
,(e_id, user_name, new_points)) 
database.commit()  
+0

на 'UPDATE total_points = (total_points +% s)' какая таблица? или если 'total_points' является таблицей, каково поле? – reikyoushin

ответ

1

вопрос заключается в том, что ваш синтаксис SQL не является правильным. Запрос должен быть:

UPDATE g_ent 
SET total_points = total_points + %s 
WHERE e_id = %s AND user = %s; 

Полный пример будет затем:

cursor = database.cursor() 
cursor.execute("""UPDATE g_ent 
        SET total_points = total_points + %s 
        WHERE e_id = %s AND user = %s;""", 
       (new_points, e_id, user_name)) # order of params revised 
database.commit() 

Пожалуйста, обратите внимание, что порядок параметров запроса был пересмотрен.

3
UPDATE g_ent 
SET total_points = total_points + %s 
Where e_id = %s 
    AND user = %s 
+0

PLZ использовать код форматирование – jurgenreza

Смежные вопросы