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) 有错误。怎么回事,好像只能用定长字符串。

解决方案 »

  1.   

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

  2.   

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

  3.   

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

  4.   

    update table1 set col5 =concat(col1,col2,col3,col4)