把前四个字段用CONCAT函数连接,把连接后的字段昨晚第五个字段,怎么写SQL语句

mysql> DESCRIBE 入库单表;
+------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+-------+
| 单号 | text | YES | | NULL | |
| 入库日期 | datetime | YES | | NULL | |
| 品名 | text | YES | | NULL | |
| 供货商编号 | text | YES | | NULL | |
| 颜色 | text | YES | | NULL | |
| 规格 | text | YES | | NULL | |
| 数量 | int(11) | YES | | NULL | |
| 单位 | text | YES | | NULL | |
| 单价 | double | YES | | NULL | |
| 金额 | double | YES | | NULL | |
+------------+----------+------+-----+---------+-------+
10 rows in set (0.01 sec)

mysql> DESCRIBE LSB;
+-------+-----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------+------+-----+---------+-------+
| 品名 | text | YES | | NULL | |
| 颜色 | text | YES | | NULL | |
| 规格 | text | YES | | NULL | |
| 单位 | text | YES | | NULL | |
| C | char(255) | NO | PRI | | |
+-------+-----------+------+-----+---------+-------+
5 rows in set (0.01 sec)


帮忙写代码。
要求:
LSB 的前四个字段要这样产生: SELECT DISTINCT 品名,颜色,规格,单位 FROM 入库单表;
LSB 的第五个字段,要用 CONCAT 函数把 LSB 的前四个字段连接起来。连接后的结果作为第五个字段 C 的内容。
还有一个问题,在创建表的时候,如果 C 的类型是 TEXT,则 MySQL 提示 PRIMARY KEY(C) 有错误。怎么回事,好像只能用定长字符串。

作者: xiaoyuanyuan2009   发布时间: 2011-05-23

select col1,col2,col3,col4,concat(col1,col2,col3,col4) as col5
from tb

作者: rucypli   发布时间: 2011-05-23

LSB 的第五个字段,要用 CONCAT 函数把 LSB 的前四个字段连接起来。连接后的结果作为第五个字段 C 的内容。
update tt set f5 =concat(col1,col2,col3,col4)

作者: wwwwb   发布时间: 2011-05-23

那就是text不能做主键。是不是lob类型不能做主键哦。

作者: jinfengyiye   发布时间: 2011-05-23

引用 3 楼 jinfengyiye 的回复:
那就是text不能做主键。是不是lob类型不能做主键哦。

应该 是的。

作者: jinfengyiye   发布时间: 2011-05-23