Я создал представление, которое использует GROUP _CONCAT для объединения результатов запроса в столбце продуктов с типом данных 'varchar(7) utf8_general_ci'
в столбце с именем concat_products
. Проблема в том, что mysql усекает значение столбца concat _products. phpMyAdmin говорит, что тип данных столбца продуктов concat _—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 _продукты _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
Values in VARCHAR columns are variable-length strings
Length can be specified as a value from 1 to 255 before MySQL 4.0.2 and 0 to 255 as of 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 _? (решено!)
Почему uf8_bin вместо utf8_general_ci?
Можно ли изменить тип данных столбца в представлении, например, в моем случае, на текст для столбца concat _products?
Если нет, что я могу сделать, чтобы mysql не обрезал столбец продуктов concat _?