Php 两个查询与全选
我正在使用Mysql和php 这是我的表格结构:=Php 两个查询与全选,php,mysql,sql,Php,Mysql,Sql,我正在使用Mysql和php 这是我的表格结构:= +----+---------------+--------+--------+--------+--------+--------+--------+ | id | no_of_replies | reply1 | reply2 | reply3 | reply4 | reply5 | reply6 | +----+---------------+--------+--------+--------+--------+--------+---
+----+---------------+--------+--------+--------+--------+--------+--------+
| id | no_of_replies | reply1 | reply2 | reply3 | reply4 | reply5 | reply6 |
+----+---------------+--------+--------+--------+--------+--------+--------+
| -- | -- | | -- | -- | -- | -- | -- |
+----+---------------+--------+--------+--------+--------+--------+--------+
对于一个问题,用户最多可以给出六个回复。大多数情况下,用户会给出4-5个回复。我会存储回复的数量(没有回复的数量)和所有回复(回复1,回复2,…)。
大多数情况下,reply5和reply6是空的
因此,当显示数据时,我有两个选项
备选案文1:-
执行单个查询并获取所有响应-
SELECT * FROM `responses` WHERE `id`='xyz'
备选案文2:-
进行2次查询并获得所需的响应
SELECT `no_of_repies` FROM `responses` WHERE `id`='xyz'
如果结果是3
从responses
中选择reply1
,reply2
,reply3
,其中id
='XYZ'
注:=
我这样问是因为这个表格将被经常使用,需要快速给出答案 您应该阅读有关数据库规范化的内容。在您的情况下,我会这样做:
tabel
---------------------------------
id reply date questinID
获取1人对1个问题的回复量
SELECT COUNT(*) FROM tabel WHERE id=userid AND questionID=questionid;
要为1个用户获取1个问题的答复,请执行以下操作:
SELECT * FROM tabel WHERE id=userid AND questionID=questinid ORDER BY date;
为什么希望查询返回未知数量的列?您将如何以编程方式处理结果?获取空/空结果的开销是可以忽略的,使用RDMS将简化您的工作。不要让
reply1,reply2…
,而是将它们放在一个单独的表中。这样你就不必担心没有回复了。只需从表2中选择回复文本,其中外键=主键是用户id或问题id,您如何知道另一个?阿斯普林我不知道如何将这些列放在单独的表中,以及如何解决问题problem@sid你怎么知道这些回答属于哪个问题?