У меня очень короткий запрос к MariaDB, чтобы исправить неработающие ссылки на твиттер.
У пользователей таблиц есть link_twitter как VARCHAR (255), для генерации схемы БД мы используем PHP Doctrine, но я хочу выполнить этот запрос вручную.
Сервер работает MariaDB 1.10
Запрос:
UPDATE
`user` AS u
SET
u.link_twitter = "https://twitter.com/" + u.link_twitter
WHERE
u.link_twitter NOT LIKE 'https://twitter.com/%';
Но я получаю сообщение «Ошибка запроса: (1292): усеченное неверное значение DOUBLE:»https://twitter.com/»
Я знаю, что этот вопрос много раз задавался в прошлом, но ни одно из решений не помогло мне. 🙁
Пожалуйста, как я могу это исправить?
Спасибо
Используйте правильный метод конкатенации строк:
UPDATE user u
SET u.link_twitter = CONCAT('https://twitter.com/', u.link_twitter)
WHERE u.link_twitter NOT LIKE 'https://twitter.com/%';
+
означает добавление в MariaDB / MySQL (и большинство баз данных). Следовательно, он пытается рассматривать свои аргументы как числа.
Других решений пока нет …