Я не могу использовать слово "время" в запросе MySQL?

Я не могу использовать слово "время" в качестве имени моего столбца в запросе MySQL.
Это мой код запроса:(не работает)

UPDATE ip_p SET deger =  '-1' TIME =  '123' WHERE ip =  '12' AND premium =  '1'

Ошибка:

# 1064 - у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать вблизи 'time='123' WHERE ip = '12' AND premium = '1'' в строке 1

Но этот код работает:

UPDATE ip_p SET deger =  '-1' WHERE ip =  '12' AND premium =  '1'

Должен ли я изменить название своего столбца?

4 ответа

Решение

1) Вам не хватает комы (,) после deger = '-1'

2) Вы можете заключить ВРЕМЯ в backticks (`), чтобы предотвратить другие возможные ошибки

Исправьте (попробуйте?) Орфографию запроса:

UPDATE ip_p SET deger =  '-1', `TIME` =  '123' WHERE ip =  '12' AND premium =  '1'

ОБНОВИТЬ

Отвечая на комментарий:

правильный запрос на уменьшение deger Столбец за 1 будет:

UPDATE ip_p SET deger =  deger-1, `TIME` =  '123' WHERE ip =  '12' AND premium =  '1'

Если вам просто нужно установить значение -1, выполните:

UPDATE ip_p SET deger = -1, `TIME` =  '123' WHERE ip =  '12' AND premium =  '1'

Также обратите внимание, что синтаксис с одинарными кавычками (') должен использоваться только со строками (столбцы varachar (...) и т. Д.); для чисел это неверно. Если вам нужно указать номер - просто сделайте это без кавычек. Я изменил это для deger столбец (по-видимому, числовой, если вы хотите что-то вычесть из него), но не для остальных, потому что я не знаю их типы. Если столбцы TIME, ip а также premium также являются числами, то вам нужно также удалить кавычки из их значений.

Вы можете избежать ключевого слова "время", используя обратные ссылки:

UPDATE ip_p SET deger =  '-1', `TIME` =  '123' WHERE ip =  '12' AND premium =  '1'

Я полагаю, что вы также сбросили запятую, которая может быть причиной ошибки, которую вы получаете здесь. Но в целом, если у вас есть имя столбца, которое является особенным для MySQL, избегайте его.

Вы пропустили запятую раньше TIME:

UPDATE ip_p SET deger =  '-1', TIME =  '123' WHERE ip =  '12' AND premium =  '1'
                             ^

Вы можете, но вы должны заключить имя в кавычки `, Как правило, я всегда заключаю в них имена столбцов, чтобы было понятно, что они собой представляют.

Другие вопросы по тегам