Ошибка MySQL «правильный синтаксис для использования near ‘/*100,3), ‘%’) КАК `Процент` ИЗ INFORMATION_SCHEMA.ПРОФИЛИРОВАНИЕ»

#mysql #sql #mysql-error-1064 #navicat

#mysql #sql #mysql-ошибка-1064 #navicat

Вопрос:

Я получил эту странную ошибку после попытки выполнить запрос в большой таблице:

У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования near ‘/*100,3), ‘%’) КАК Percentage ИЗ INFORMATION_SCHEMA.ПРОФИЛИРОВАНИЕ, ГДЕ QUERY_ID=’ в строке 1

Что это значит?

РЕДАКТИРОВАТЬ == это запрос

 update cities w, states s set w.region_id = s.id 
where s.code = w.region and w.country_id = s.country_id 
  

Таблица cities содержит около 3 миллионов записей, а таблица states — около 6000

Просто для записи я выполнил этот запрос, используя клиент mysql Navicat.

Комментарии:

1. Это запрос на обновление, включающий две таблицы — он отлично работает на таблице меньшего размера.

2. Можете ли вы опубликовать код для вашего SQL-запроса? Похоже, у вас синтаксическая ошибка в вашем операторе SQL.

3. Я знаю, что этот элемент устарел, но я хотел добавить сюда примечание на случай, если кто-то другой столкнется с этой ошибкой, как я сделал этим утром, выполняя левое соединение с двумя большими таблицами. Похоже, что Navicat больше не работает, но фактически он все еще обрабатывает запрос. Если вы просто подождете, это завершится или, по крайней мере, выдаст полезную ошибку. Ошибка, указанная выше, возникает только при досрочном завершении запроса.

Ответ №1:

SQL поддерживает комментарии в стиле C:

 /* ... */
  

похоже, что /*100,3 интерпретируется как начало комментария, и этот комментарий нарушает синтаксис остальной части SQL.

Комментарии:

1. @Ali: Вы включили профилирование ? Ваша окружающая среда пытается получить доступ к информации профилирования?

2. ммм, я не уверен в этом — как мне проверить и почему именно я должен это включить?

3. @Ali: Ищите «профилирование» в show variables; . Также попробуйте запустить свой SQL из mysql оболочки. Вы также можете захотеть включить в свой вопрос подробную информацию о том, как вы обращаетесь к MySQL (т. Е. Какой язык, ORM, библиотека, …).

4. Здесь я использую клиент Navicat MySQL… будет ли это иметь какое-либо отношение ко всей проблеме?

5. @Ali: Это может быть связано. Извините, но я ничего не знаю о Navicat. Вы должны добавить эту информацию в свой вопрос, я добавил тег для вас.