可以在子查询中使用限制吗?

时间:2015-08-06 07:23:42

标签: php mysql

我希望在管理员中显示评论,并在每个页面中显示20个通讯。我想把这20个通用的看到的字段设置为1.我使用这个查询给我错误

public static function seen_comment($per_page,$offset){
        global $db;
        $sql =" UPDATE ".self::$table_name; 
        $sql.=" SET seen=1";
        $sql.=" WHERE id IN  ";
        $sql.=" ( SELECT id FROM comment ORDER BY id DESC )";
        $sql.=" LIMIT $per_page OFFSET $offset ";

        $db->query($sql);
}

这个问题是什么?对于这种情况,最好的方法是什么?

  

致命错误:未捕获的异常' PDOException' with message' SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以获得在OFFSET 0' OFFSET 0附近使用的正确语法。在第1行'在第89行的C:\ wamp \ www \ 1hezar \ inc \ class \ comment.php

1 个答案:

答案 0 :(得分:0)

你可以尝试一下

<?php 
 public static  function seen_comment($per_page,$offset){
    global $db;
    $sql =" UPDATE ".self::$table_name ." 
            SET `seen`=1  
            WHERE `id` 
            IN  ( SELECT id FROM comment ORDER BY id DESC LIMIT $per_page OFFSET $offset ) ";
    $db->query($sql);
 }
?>

希望它有效