Ошибка добавления SQL-кода в столбец VARCHAR с ошибкой Truncate DOUBLE

0

У меня есть таблица с колонками

tick varchar(10), category varchar(100)

и у них есть следующие 2 записи (для образца)

EFG,0
XYZ,#

(EFG и XYZ) являются значениями для столбца тиков, а (0 и #) для столбца категорий соответственно.

Мне нужно добавить строку "Cool" (включая запятые) к существующему значению категории, чтобы две вышеупомянутые записи стали

"EFG","0,Cool,"
"XYZ","#,Cool,"

Поэтому я запускаю следующие операторы SQL:

update tablen set category = category + ',Cool,' where tick='EFG';
update tablen set category = category + ',Cool,' where tick='XYZ';

Однако для первого оператора SQL он не меняет никакого значения вообще. Во-вторых, значение категории обновляется С# до "0"

В обоих случаях я получаю предупреждения:

 Warning: #1292 Truncated incorrect DOUBLE value: '#' (and for '0')
 Warning: #1292 Truncated incorrect DOUBLE value: ',Cool,'

Невозможно понять, почему обновление столбца VARCHAR приводит к ошибке DOUBLE value.

Может кто-нибудь, пожалуйста, пролить свет на то, что я здесь делаю неправильно? Требуется ли какое-либо типографское оформление?

Большое спасибо

  • 0
    Исправьте свою структуру данных! Не храните списки вещей в строке через запятую. Это не SQL-способ хранения таких вещей.
  • 0
    Спасибо @GordonLinoff за вклад. Время от времени существуют определенные требования, которым требуется неопределенное количество элементов в списке (например, продукт, попадающий в число X категорий). Именно для этого я использую значения CSV в столбце. У вас есть рекомендации по улучшению реализации? Хотел бы иметь некоторые ценные идеи
Показать ещё 1 комментарий
Теги:

1 ответ

0

в MySQL конкат не + но конкат()

update tablen set category = concat(category , ',Cool,') where tick='EFG';
update tablen set category = concat(category , ',Cool,') where tick='XYZ';

знак плюс заставляет mysql думать, что значения являются числами.. но у вас есть varchar..

  • 0
    Большое спасибо @scaisEdge ... Исправлена проблема! Отметить его как ответ и +1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню