я не могу использовать слово «время» в MySQL запрос? - PullRequest
0 голосов
/ 23 января 2012

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

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

Ошибка:

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

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

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

Придется ли мне менять имя столбца?

Ответы [ 4 ]

3 голосов
/ 23 января 2012

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 также являются числами, вам также необходимо удалить кавычки из их значений.

1 голос
/ 23 января 2012

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

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

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

0 голосов
/ 23 января 2012

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

UPDATE ip_p SET deger =  '-1', TIME =  '123' WHERE ip =  '12' AND premium =  '1'
                             ^
0 голосов
/ 23 января 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...