Mysql усекает объединенный результат функции GROUP _CONCAT

Я создал представление, которое использует 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.

  1. Почему mysql указывает более 255 символов для столбца продуктов varchar concat _? (решено!)

  2. Почему uf8_bin вместо utf8_general_ci?

  3. Можно ли изменить тип данных столбца в представлении, например, в моем случае, на текст для столбца concat _products?

  4. Если нет, что я могу сделать, чтобы mysql не обрезал столбец продуктов concat _?

42
задан Brian Tompsett - 汤莱恩 7 November 2015 в 17:20
поделиться