SQL: 1292 Сокращенное неверное значение DOUBLE: 'https://twitter.com/'
У меня очень короткий запрос к 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/"".
Я знаю, что этот вопрос много раз задавался в прошлом, но ни одно из решений не помогло мне.:-(
Пожалуйста, как я могу это исправить?
Спасибо
1 ответ
Решение
Используйте правильный метод конкатенации строк:
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 (и большинство баз данных). Следовательно, он пытается рассматривать свои аргументы как числа.