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 (и большинство баз данных). Следовательно, он пытается рассматривать свои аргументы как числа.

Другие вопросы по тегам