简体   繁体   English

如何从数据库中获取特定行?

[英]How to fetch specific row from the database?

I'm creating simple website and need to get specific column from database. 我正在创建一个简单的网站,需要从数据库中获取特定的列。 I need to get only last 5th column from database to be displayed, and I'm stuck here. 我只需要从数据库中获取最后第5列即可显示,而且我被困在这里。

This code I tried: 我试过的这段代码:

SELECT * FROM `post` ORDER BY `post_date` LIMIT 4, 5

But with this code on my page I get all rows from last 5th column to last 10 and I don't need that I need just to display last inserted 5th column. 但是,在我的页面上使用此代码后,我得到了从第5列到最后10列的所有行,我不需要只显示最后插入的第5列。

My full code looks like this: 我的完整代码如下所示:

class Second {
        public function second_post(){
            global $pdo;

            $query = $pdo->prepare('SELECT * FROM `post` ORDER BY `post_date` LIMIT 4, 5');
            $query->execute();

            return $query->fetchAll(PDO::FETCH_ASSOC);
        }

        public function fetch_data($pid){
            global $pdo;

            $query = $pdo->prepare('SELECT * FROM `post` ORDER BY `post_date` LIMIT 4, 5');
            $query->BindValue(1,$pid);
            $query->execute();

            return $query->fetch();
        }
    }

$sec = new Second;
    $check = new Second;
    $secs = $sec->second_post();

Use SELECT * FROM post ORDER BY post_date LIMIT 1 OFFSET 4 使用SELECT * FROM post ORDER BY post_date LIMIT 1 OFFSET 4

The second parameter after LIMIT defines the offset. LIMIT之后的第二个参数定义偏移量。 This way you can return only 1 record and start on record 5 (OFFSET 4). 这样,您只能返回1条记录并从记录5开始(偏移4)。

You can also use SELECT * FROM post ORDER BY post_date LIMIT 4, 1 , the result will be the same. 您还可以使用SELECT * FROM post ORDER BY post_date LIMIT 4, 1结果将相同。 Notice that the numbers are reversed when you use a comma. 请注意,使用逗号时数字相反。

Use DESC LIMIT ? 使用DESC LIMIT ?

So code must be for last 8 inserted column's: 因此,代码必须是最后8个插入列的代码:

$query = $pdo->prepare('SELECT * FROM `post` ORDER BY `post_id` DESC LIMIT 8');

This code display last inserted columns from database. 此代码显示数据库中最后插入的列。

您可以直接获得第5列,例如

SELECT COLUMN_NAME -> FROM post;

Your Query is SELECT * FROM post ORDER BY post_date LIMIT 4, 5 您的查询是SELECT * FROM post ORDER BY post_date LIMIT 4, 5

as you want only 1 row, so limit should be 1 . 因为只需要1行,所以限制应该是1

now you want last inserted so you need to use DESC 现在您要插入最后一个,因此您需要使用DESC

Just use this query, and you are done, 只需使用此查询,您就完成了,

SELECT * FROM post ORDER BY post_date DESC LIMIT 1, 5

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM