php - 表中存在时如何从表中选择

标签 php mysql sql

当一个讲座('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/

相关文章:

c# - 添加新记录时外键错误

sql - 在 PostgreSQL 中删除带有外键的行

php - MD5 哈希值不匹配

php - fatal error : Cannot redeclare getteampoints() (previously declared in

javascript - Highcharts 仪表在 IE8 中不起作用

mysql - 不同表列之间的差异

mysql - 库存的订单触发(更新)

MySQL删除特定行数

javascript - 如何从时间序列数据构造 'nested' 对象?

php - 警告 : Division By Zero - Calculating percentages