【发布时间】:2011-06-28 08:43:28
【问题描述】:
我在 Mysql 5 中有 3 个表。
Table Client: ID, Username, Password.
Table Client_Data: ID, Dataname
Table Client_Client_Data: client_id, Data_id, Value
我的想法是,我可以让这个软件的用户决定他想从他的客户那里获得哪些信息。 Client_Data 表通常会填充“First Name”、“Last Name”、“Address”等。第三个表将这些表连接在一起。一个例子:
Client: ID=1 Username=Bert01 Password=92382938v2nvn239
Client_Data: ID=1 Dataname=First Name
Client_Client_Data: client_id=1 data_id=1 value=Bert
这意味着 Bert01 在连接选择查询中的表时有一个名字“Bert”。
我将所有这些都显示在一个表格中,其中的列是 DataName 值(如果您在这里丢失了我:标题将类似于“First Name”、“Last Name”等等)。我希望能够为每一列按字母顺序对这些数据进行排序。
我的解决方案是使用 2 个查询。第一个将使用WHERE Client_Data.Dataname = $sortBy ORDER BY Client_Client_Data.value 收集数据,然后第二个查询将使用WHERE Client.ID = 1 OR 2 OR 3 收集其他数据,其中包含在第一个查询中收集的所有ID。这很好用。
现在一直在我脑海中萦绕的问题是当我想搜索我的数据时。如果不是为了排序,这不会太难。搜索完成后,该表将包含结果,但该表的排序方式必须与之前相同。
有没有人知道如何通过循环潜在的数千个客户端而不打扰网络服务器的内存来做到这一点? (意思是:我想在Mysql中做这个)。
如果您的解决方案需要在不丢失存储此类数据的能力的情况下更改表:那没问题。
【问题讨论】:
-
这不是真正的密码,是吗? :)
标签: mysql join where-clause