Синтаксическая ошибка MySQL - очевидна? - PullRequest
0 голосов
/ 23 ноября 2011

Кто-нибудь может обнаружить синтаксическую ошибку в этой вещи?

UPDATE `inventory` 
LEFT JOIN `manufacturers` ON (
  `man_id` = `manufacturers`.`id`
)
LEFT JOIN `meta_tags` ON (
  `meta_tags`.`page_url` = REPLACE(REPLACE(`manufacturers`.`title`, " ", "_"), "\", "_")
)
SET `inventory`.`tag_ids` = CONCAT_WS("," `tag_ids`, `tag_id`)
WHERE FIND_IN_SET(`tag_id`, `tag_ids`) = 0

Сообщение об ошибке:

 #1064 - You have an error in your SQL syntax; 
 check the manual that corresponds to your MySQL server 
 version for the right syntax to use near 
 '_" ) ) SET `inventory`.`tag_ids` = CONCAT_WS("," `tag_'

Ответы [ 2 ]

3 голосов
/ 23 ноября 2011

Также

CONCAT_WS("," `tag_ids`, `tag_id`)

должно быть

CONCAT_WS(",", `tag_ids`, `tag_id`)

(отсутствует запятая)

3 голосов
/ 23 ноября 2011

Вам, вероятно, нужно экранировать \ в вашей внешней REPLACE() функции. Попробуйте использовать

REPLACE(REPLACE(`manufacturers`.`title`, " ", "_"), "\\", "_")

вместо того, что у тебя есть. Вот ссылка на MySQL , объясняющая escape-последовательности символов.

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