只是为了节省任何人阅读的时间和麻烦,请勿使用此方法存储调查。正如答案中所指出的,这是非常糟糕的编程(更不用说对小猫很危险)
如果这个问题有些复杂,请原谅我。我正在开发一个程序,允许用户创建调查并将其发布给用户。
长话短说,我有一张看起来像这样的表格:
**survey_info**
id bigint(20) Auto_increment Primary Key
title varchar(255)
category bigint(20)
active tinyint(1)
length int(11)
redirect text
现在,当创建调查时,还会创建一个新表,该表是为保存该调查的输入而定制的。我为这些新表使用的命名模式是survey_{survey_id}
我希望做的是在调查列表中,将调查的回复数量放在它的右侧。
好吧,现在我的实际问题是,有没有办法在我用来收集可用调查列表的同一查询中检索收集表 (survey_id) 中的行数?我意识到我可以很容易地做到这一点,只需对每个调查使用第二个查询并获取它的行数,但我担心用户拥有的调查数量越多,这个过程就会变得越耗时。那么有没有办法做类似的事情:
SELECT s.id AS id, s.title AS title, c.title AS ctitle, s.active AS active, s.length AS length, s.redirect AS redirect, n.num FROM survey_info s, survey_category c, (SELECT COUNT(*) AS num FROM survey_s.id) n WHERE s.category = c.id;
我只是不确定如何使用 s.id 作为另一个表名称的一部分(或者是否可以这样做)任何帮助,甚至是正确方向的一点将不胜感激!