如何用wpdb在WordPress中排行

时间:2020-03-23 作者:hossein naghneh

我想比较我数据库中的两个价格。我得到一行具有任何id:

$price1 = $wpdb->get_row( "SELECT * FROM $wpdb->prices WHERE id = 10" );
我想从该表中获取行意味着我想在下面获取相同的行,但如果删除了id为9的行,则缺少该行:

$price1 = $wpdb->get_row( "SELECT * FROM $wpdb->prices WHERE id = 9" );
如何做到这一点?

3 个回复
最合适的回答,由SO网友:hossein naghneh 整理而成

我找到了答案。这两行之间有一个共同的字段和句柄宽度limit 我的查询中的参数。

$wpdb->prepare("SELECT * FROM $table_name WHERE post_id = %d ORDER BY id DESC LIMIT 2", $post_id);

SO网友:Pmpr

您应该将另一个字段添加到prices 调用的表previous_id 并在每次插入和删除查询时保持更新。

这样你就可以一直保持以前的记录。如果删除该记录,可以将其previous_id 如果插入新记录,则可以将最后一个可用id添加到其previous_id.

SO网友:Sufyan Sheikh

你可以通过id = 10 如果已删除,则检查id = 9 等等

$price1 = \'\';
for($id = 10; $price1==\'\'; $id--){
    $price1 = $wpdb->get_row( "SELECT * FROM book WHERE id = $id" );
}
如果id = 10 存在,将直接选择。循环将只运行一次。

如果您想获得下一行(即第11行),只需替换$id-- 具有$id++

相关推荐