我有一个 WordPress 博客,显然有一个 WordPress 数据库。
数据库名称:wordpress
通信的两个表是wp_users
和wp_usermeta
。
表 usermeta
包含列 user_id
、meta_key
和 meta_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/