Я создал представление, которое использует GROUP_CONCAT для конкатенации результатов из запроса в столбце продуктов с типом данных 'varchar(7) utf8_general_ci'
в столбце с именем concat_products
.
Проблема заключается в том, что mysql обрезает значение столбца concat_products.
phpMyAdmin говорит, что тип данных столбца concat_products varchar(341) utf8_bin
настольные продукты:
CREATE TABLE `products`(
`productId` tinyint(2) unsigned NOT NULL AUTO_INCREMENT,
`product` varchar(7) COLLATE utf8_general_ci NOT NULL,
`price` mediumint(5) unsigned NOT NULL,
PRIMARY KEY (`productId`))
ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
concat_products_vw Просмотр:
CREATE VIEW concat_products_vw AS
SELECT
`userId`,
GROUP_CONCAT(CONCAT_WS('_', `product`, `productId`, `price`)
ORDER BY `productId` ASC SEPARATOR '*') AS concat_products
FROM
`users`
LEFT JOIN `products`
ON `users`.`accountBalance` >= `product`.`price`
GROUP BY `productId`
согласно руководству mysql
Значения в столбцах VARCHAR являются строками переменной длины
Длина может быть указана как значение от 1 до 255 до MySQL 4.0.2 и от 0 до 255 с MySQL 4.0.2.
изменить:
Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 65,535.
-
Почему mysql указывает более 255 символов для столбца varchar concat_products? (разрешено!)
-
Почему uf8_bin вместо utf8_general_ci?
-
Можно ли изменить тип данных столбца в представлении, например, в моем случае, в текст для столбца concat_products?
-
Если это не то, что я могу сделать, чтобы предотвратить деактивацию mysql столбца concat_products?