У меня есть таблица с колонками
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.
Может кто-нибудь, пожалуйста, пролить свет на то, что я здесь делаю неправильно? Требуется ли какое-либо типографское оформление?
Большое спасибо
в MySQL конкат не +
но конкат()
update tablen set category = concat(category , ',Cool,') where tick='EFG';
update tablen set category = concat(category , ',Cool,') where tick='XYZ';
знак плюс заставляет mysql думать, что значения являются числами.. но у вас есть varchar..