Я не могу использовать слово "время" в запросе 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'
^
Вы можете, но вы должны заключить имя в кавычки `
, Как правило, я всегда заключаю в них имена столбцов, чтобы было понятно, что они собой представляют.