为什么这个 PHP/PDO sqlsrv 查询没有返回结果?

Why is this PHP/PDO sqlsrv query not returning results?

我正在尝试使用 PHP 中的 PDO 从 mssql 数据库 table 获取结果,但它没有返回任何结果。但是,我可以数 table 行 - 有什么建议吗?

  //this one working fine return 500 recrod in table
    $sql = "SELECT count(*) FROM Content";
    $stmt = $conn->prepare($sql);
    $stmt->execute();
    $num_rows = $stmt->fetchColumn();

     //this one not returning anything 
    $sql = " SELECT c.*  FROM (
            SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RowID,*  FROM Content
            ) AS c 
        WHERE c.ID > :row_start AND c.ID <= :row_end
        ";
       $stmt = $conn->prepare($sql);
       $stmt->bindParam(':row_start', $row_start);
       $stmt->bindParam(':row_end', $row_end);
       $stmt->execute();

    $allsuck = $stmt->fetchAll(PDO::FETCH_COLUMN);
     print_r($allsuck);

table 信息:

Array
(
    [0] => ID
    [1] => Title
    [2] => Fulldata
    [3] => description
    [4] => Catid
    [5] => language
    [6] => Created
    [7] => Userid
    [8] => MetaKey
    [9] => Thumbnail
    [10] => Thumbnail_desc
    [11] => Hits
    [12] => Active
    [13] => ModifiedDate
    [14] => ModifiedBy
    [15] => Fb_image
    [16] => important
    [17] => hashTags
)

尝试将子查询移至主查询,因为在这种情况下执行子查询对您没有任何作用:

SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RowID,* 
FROM Content 
WHERE Content.ID > :row_start 
AND Content.ID <= :row_end
SELECT * FROM (
  SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RowID,* 
  FROM Content 
) data
WHERE data.RowID > :row_start 
  AND data.RowID <= :row_end

您在错误的列上进行过滤。 Id 不会为你做任何事情(否则为什么要用 ROW_NUMBER() 呢?)。过滤器应该在 RowId