php - 在 WordPress 中查询自定义表以首先返回最新行

标签 php mysql sql wordpress

我创建了一个自定义表,用于在 WordPress 中存储“帖子喜欢”。

$sql[] = "CREATE TABLE IF NOT EXISTS {$table_prefix}like (
    id bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    post_id bigint(20) NOT NULL,
    user_id bigint(20) NOT NULL,
        KEY recommenders (post_id, user_id)
) {$charset_collate};";

当用户点击 WordPress 帖子上的“赞”按钮时,表中会添加一行,用于捕获用户 ID 和帖子 ID。

要获取“喜欢”特定帖子的所有用户 ID 的数组,我可以这样做:

$result = $wpdb->get_col( $wpdb->prepare( "SELECT user_id FROM {$table_prefix}like WHERE post_id = %d", $post_id ) );

我现在想做两件事:

  1. 如何修改我的查询,以便添加到表中的最新行首先返回到 $result 数组中?

  2. 如何执行与问题 1 完全相同但仅返回 5 行的操作?

最佳答案

对于 1:您可以通过在查询中添加 ORDER BY `id` DESC 来按您的 id 以降序对它们进行排序。

对于 2:还添加 LIMIT 0, 5:

$result = $wpdb->get_col( $wpdb->prepare( "SELECT `user_id` FROM `{$table_prefix}like` WHERE `post_id` = %d ORDER BY `id` DESC LIMIT 0, 5", $post_id ) );

关于php - 在 WordPress 中查询自定义表以首先返回最新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23640497/

相关文章:

php - 删除过多的行返回

mysql - 为什么我的sql用了Max函数却不能用Abs函数?

php - Laravel - 获取所有记录而不仅仅是第一个并将它们放在一起?

php - SQL 查询值从 $_GET 更改

sql - 如何在 SQL Server 中将数据库名称作为参数传递

sql - 对不能同时为空的多列的唯一约束

php - 将数据保存为数组或单个字段 (php/MySQL)

php - 将表从一个数据库复制到另一个数据库但使用不同的用户,joomla 中的 php

PHP - 将 2 个数组的值连接成 1 个新数组

php - PDO 与 mysql 用户定义变量返回 null