2008-11-15 29 views
0

我需要在mysql中存储100-200个数据,这些数据会被管道分开..PHP MYSQL - 一列中有很多数据

任何想法如何将它存储在mysql?我应该使用单个列还是应该制作多个列?我不知道有多少数据用户会输入。

我做了一个表格,它停在需要存储多个数据的部分。

任何人都知道如何在单个列中存储多个数据,或者有没有其他方法?

请帮助我..

非常感谢你

回答

4

您应该用数据源的ID实现您的表。这个ID将被用来分组所有这些相似的数据,所以你不需要知道你有多少事先知道。

你的表列和数据可以设立这样的:

sourceID  data 
--------  ---- 
     1   100 
     1   200 
     1   300 
     2   100 
     3   100 
     3   200 

当你查询数据库,你可以拉中的所有数据具有相同的sourceID。使用上面的数据,以下查询将返回两个数据。

SELECT data 
FROM dataTable 
WHERE sourceID = 3 

如果你有多个表,你需要将它们互相利用JOIN语法关联。假设您有一个包含用户数据的主表,并且您想将所有这些输入数据与每个用户相关联。

userID userName otherData 
------ -------- --------- 
    1   Bob   xyz 
    2   Jim   abc 
    3   Sue  lmnop 

如果你想从这个表(用户表),从数据表的数据连接数据,使用这样的查询:

SELECT userID, userName, data, otherData 
FROM userTable 
LEFT JOIN dataTable 
ON userTable.userID = dataTable.sourceID 
WHERE userTable.userID = 1 

该查询会给你所有的数据的用户ID为1.这假定数据表中的sourceID使用用户表中的userID来跟踪额外数据的属性。

请注意,这不是SQL中唯一的JOIN语法。您可以了解其他类型的连接here

1

如果您拥有的这个数据是从哪里来的形式,从表单每个输入存储到它自己单独的列。

寻找在您的数据关系:听起来你有一个“有很多”关系这表明你可能需要一个链接表,你可以做一个简单的连接查询......

在一个单一的存储多个数据列将是一个噩梦的查询和更新,除非你存储的XML,事件然后它会给我做恶梦...

1

听起来像你需要一个连接表。在两个表中只需要你需要的数据,用两个表的ID创建第三个表,然后无论你需要100,200,300还是更多,都无关紧要。