数据库中有两个表,一个表记录了产品的属性值,另一个表记录产品属性名对应的中文,如table_cp:
field: chanpinming chanpinxinghao chanpinjiage
value: 华硕主板 TYURI445 555表cp_chinese
field: fieldname fieldchinese
value: chanpinming 产品名
chanpinxinghao 产品型号
chanpinjiage 产品价格有什么方法直接输出为:产品名:华硕主板,产品型号:TYUI445,产品价格:555
就是将table_cp中的field变为cp_chinese中的fieldchinese,直接在数据库可以操作么?
怎么操作呢?
field: chanpinming chanpinxinghao chanpinjiage
value: 华硕主板 TYURI445 555表cp_chinese
field: fieldname fieldchinese
value: chanpinming 产品名
chanpinxinghao 产品型号
chanpinjiage 产品价格有什么方法直接输出为:产品名:华硕主板,产品型号:TYUI445,产品价格:555
就是将table_cp中的field变为cp_chinese中的fieldchinese,直接在数据库可以操作么?
怎么操作呢?
mysql> select * from cp;
+-------------+----------------+--------------+
| chanpinming | chanpinxinghao | chanpinjiage |
+-------------+----------------+--------------+
| 华硕主板 | TYURI445 | 555 |
+-------------+----------------+--------------+
1 row in set (0.00 sec)mysql> select * from cpp;
+----------------+--------------+
| name | fieldchiness |
+----------------+--------------+
| chanpinming | 产品名 |
| chanpinxinghao | 产品型号 |
| chanpinjiage | 产品价格 |
+----------------+--------------+
3 rows in set (0.00 sec)
mysql> select
-> (select concat(cc1.fieldchiness,': ',c1.chanpinming)
-> from cpp cc1,cp c1
-> where cc1.name='chanpinming') chanpin,
-> (select concat(cc2.fieldchiness,': ',c2.chanpinxinghao)
-> from cpp cc2,cp c2
-> where cc2.name='chanpinxinghao') xinghao,
-> (select concat(cc3.fieldchiness,': ',c3.chanpinjiage)
-> from cpp cc3,cp c3
-> where cc3.name='chanpinjiage') jiage;
+------------------+--------------------+---------------+
| chanpin | xinghao | jiage |
+------------------+--------------------+---------------+
| 产品名: 华硕主板 | 产品型号: TYURI445 | 产品价格: 555 |
+------------------+--------------------+---------------+
select b.fieldchinese,a.value from table_cp as a,cp_chinese as b where a.field=b.fieldname