我们如何在sql表中的同一列中添加两个字段?

时间:2014-10-31 10:09:02

标签: mysql sql database phpmyadmin

我想创建一个数据库,其中包含所有产品评级和用户购买的备注

假设我创建了一个包含某些列

的表名“Users_rating_product”
user_id ->INT
company->Varchar
product1 -> 3 (rating of product out of 5)|(review of product)
product2-> 4(rating)|(some review)

我想知道如何在mysql中执行此操作。我正在使用phpmyadmin进行数据库创建

表格似乎

user_id  | company  |Ac                 | TV           | fridge 

1        | goderaj  |3 ,take more power |4,less power  |5,efficient

我想知道我该怎么做才能让产品的评级和注释显示在同一列

2 个答案:

答案 0 :(得分:0)

为此你需要一张单独的桌子。称之为ProductRating。将唯一键(ID)放入表中,并将该键引用到Users_rating_product表。

例如:

Users_rating_product:

user_id  | company  |Ac  | TV | fridge 
1        | goderaj  |1   | 2  | 3
2        | somecomp |4   | 5  | 6

ProductRating

ID | Rating | Review
1  | 3      | Take more power
2  | 4      | less power
3  | 5      | efficient
4  | 5      | excellent
5  | 1      | awful
6  | 3      | average

答案 1 :(得分:0)

您可以通过多种方式实现自己的功能。 但这不是编写查询的标准格式。

you can have comma seperated column in your database like this
    user_id  | company  |Ac_mapping_id  
    1        | goderaj  |1,REview for Ac   

你可以像这样分开两个值

PARSENAME(REPLACE(String,',','.'),2) 'Name'

for Detail Reference用于拆分您可以参考的两个值: click To refer

更好的方法是将产品描述存储在不同的表中。 您可以轻松编写查询以检索数据

user_id  | company  |Ac_mapping_id  | TV_mapping_id | fridge_mapping_id 
1        | goderaj  |1              | 2             | 3

&安培;存储所有评级&像这样的映射表中的评论

Ac_mapping_id  | Rating   |Review
1              | 1        |abcd     

等于另一张桌子。

对于检索所有数据,只需使用左外连接

Select 
*
from
Users_rating_product mm
Left outer join  Ac_mapping_table ac on ac.ac_mapping_id = mm.ac_mapping_id
.....so on