【发布时间】:2014-07-16 18:28:59
【问题描述】:
我对使用 SQL 有点陌生,想知道是否有人可以帮助我解决我正在尝试弄清楚的这个查询。我正在开发一个 Wordpress 主题,我想做的事情是使用 SELECT 查询在页面上生成一组随机用户。它现在工作得很好,我让它从数据库中随机提取用户并以正确的格式显示它们。我什至可以限制用户数量(使用 LIMIT 子句)或按用户属性排序。
但是,我的挑战是让查询返回至少 4 个用户(有时RAND() 函数只显示 2 个用户,这对于正面页面来说不是很好)。
我不想创建一个在少于四个用户时会抛出错误的查询(永远不会,但我仍然想编写干净的代码)。
所以,总而言之: SELECT 查询恰好返回 4 个随机排序的结果,并且如果用户少于四个,则不会引发错误。
有什么想法吗?我尝试使用几种不同的方法来给 RAND() 不同的参数,并查看是否有“最小”子句,但我没有找到任何东西。这也是一个奇怪的查询,因为大多数时候我们更关心上限而不是下限。
谢谢大家!
这是我在 custom.php 文件中的代码(我使用的是 Roots 入门主题):
function wpb_random_users() {
global $wpdb;
// Query database for users, change the number of users displayed by changing the limit
$usernames = $wpdb->get_results("SELECT user_nicename, user_url, user_email FROM $wpdb->users ORDER BY RAND() LIMIT 4 ");
// Display users in a list
foreach ($usernames as $username) {
if (!$username->user_url) :
$randomusers .= '<div class="col-md-3">'.'<img class="img-circle img-responsive" src="'.get_wp_user_avatar_src($username->user_email, 'thumbnail').'" alt="" />'.'<h4>'.$username->user_nicename.'</h4>'.'</div>';
endif;
}
return $randomusers;
}
add_shortcode('randomusers','wpb_random_users');
【问题讨论】:
-
编辑:我知道我不需要传递 RAND() 任何东西;删除传递的变量以反映我正在尝试的解决方案的当前状态。
标签: php mysql sql wordpress wordpress-theming