当一个讲座('lectures'表中的一行)被删除时,它被移动到'lectures_deleted'表中。这是一种备份。在这种情况下,我需要能够从这两个表中调用,所以我想从“lectures”表中获取数据,但如果它不存在于此处,那么我想从中获取它'lectures_deleted' 表。
下面的代码目前破坏了网站。任何帮助将不胜感激!
function getModuleCode($id){
$result = mysql_query('
IF EXISTS
(SELECT * FROM lectures WHERE lecture_id="'.$id.'")
ELSE
SELECT * FROM lectures_deleted WHERE lecture_id="'.$id.'";
')
or die(mysql_error());
$row = mysql_fetch_array($result);
return $row['module_code'];
}
最佳答案
怎么样:
$result = mysql_query('
(SELECT * FROM lectures WHERE lecture_id="'.$id.'")
UNION
(SELECT * FROM lectures_deleted WHERE lecture_id="'.$id.'");
')
如果 lectures_deleted 仍然存在于 lectures 表中,这种方式也会从 lectures_deleted 中选择,但根据您的描述,我认为这不应该发生。
或者,我建议在讲座表中使用“已删除”标志(一位字段),指示该讲座是否已被删除。这样您就不需要将已删除的条目移动到另一个表。
关于php - 表中存在时如何从表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7386582/