php - 数据库 SQL 按列字段中的值排序

标签 php mysql sql wordpress

我有一个 WordPress 博客,显然有一个 WordPress 数据库。

数据库名称:wordpress

通信的两个表是wp_userswp_usermeta

usermeta 包含列 user_idmeta_keymeta_value

user_id   meta_key          usermeta

1         name              mark
1         userurl           mark.com
1         points            8

2         name              luke
2         userurl           luke.com
2         points            4

2         name              frank
2         userurl           frank.com
2         points            6

我会像这样在特定页面上显示数据并按点值 desc 排序:

Name: Mark
User Blog: mark.com
points: 8

Name: Frank
User Blog: mark.com
points: 6

Name: Luke
User Blog: luke.com
points: 4

我使用了这样的代码,但显然行不通:

$sql =
    "SELECT user_id, meta_key, meta_value" .
    " FROM wp_usermeta" .
    " WHERE meta_key IN ('name','userurl','points')" .
    " ORDER BY meta_value DESC";

$usermeta = $wpdb->get_results($sql);

print("<ul>");
foreach ($usermeta as $post)
{
    print('<li>' . $post->meta_value . '<br/>');
    print('</li><br><br>');
}
print("</ul>");

最佳答案

你可能会做类似的事情

select t1.user_id, t1.meta_value, t2.meta_value, t3.meta_value
from wp_usermeta t1
inner join wp_usermeta t2 on t1.user_id = t2.user_id and t2.meta_key = 'userurl'
inner join wp_usermeta t3 on t2.user_id = t3.user_id and t3.meta_key = 'points'
where t1.meta_key = 'name'

关于php - 数据库 SQL 按列字段中的值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18901320/

相关文章:

javascript - Node.js 的 Sequelize.js 可以定义主键未命名为 'id' 的表吗?

php - 使用 PHP 对表中的每一行运行 MySQL 查询

header() 重定向后 php session 丢失

php - 在特定时间和日期网站上播放视频

php - 德鲁帕尔 : module update

mysql - 查询排除的行

php - Zend 3 + Doctrine 2 创建表格?

mysql - 为多样性对 MySQL 结果进行排序

sql - 聚合函数上的 Postgres "group by"

mysql - 在Mysql中插入日期(代号一)