查找值为的表名? Mysql PHP

时间:2014-11-23 05:09:37

标签: php mysql database datatable

我有3个表,tfQuestions,oeQuestions,MultQuetsions,我有一个特定的问题,我想看看它在哪个表中。是否有任何特定的查询我可以用来做这个?如果没有,我可以使用if else搜索:

if 

 SELECT question From tfquestion WHERE question = $question  { if true do this}

else if

 SELECT question From oequestion WHERE question = $question  { if true do this}

else if

 SELECT question From multquestion WHERE question = $question  { if true do this}

1 个答案:

答案 0 :(得分:1)

要找出哪个表来自哪个问题,您只需为每个查询选择一个文字识别字符串:

 SELECT 'tf' AS tbl_name, question FROM tfquestions

接下来加入UNION中的三个表和外部驱动程序查询:

SELECT tbl_name, question
FROM (
      SELECT 'tf' AS tbl_name, question FROM tfquestions
    UNION ALL
      SELECT 'oe' AS tbl_name, question FROM oequestions
    UNION ALL
      SELECT 'mult' AS tbl_name, question FROM multquestions
)
WHERE question = :question

所以你几乎只需要一个数据库查询,但是得到匹配的问题和它的原始表名。

但请考虑@ rurouni88说的话;如果表格具有相同的结构,那么重构数据库方案可能是有意义的。至少你可以使用UNION方法在你的表上创建VIEW