MySQL选择有序行,然后随机化结果
我正在尝试获取按ID ASC排序的行,但我还希望随后将该结果随机化。因此,基本上,如果我想获取前15行,我希望它们随机出现,但作为前15行 基本上,我有一个框架来加载前15个客户端,还有一个按钮“加载更多”来加载15个客户端。我只是想让同样的15个客户按订单ID出来,但他们的位置是随机的 到目前为止,我已经做到了这一点,但最后的RAND()没有任何影响:MySQL选择有序行,然后随机化结果,mysql,random,sql-order-by,Mysql,Random,Sql Order By,我正在尝试获取按ID ASC排序的行,但我还希望随后将该结果随机化。因此,基本上,如果我想获取前15行,我希望它们随机出现,但作为前15行 基本上,我有一个框架来加载前15个客户端,还有一个按钮“加载更多”来加载15个客户端。我只是想让同样的15个客户按订单ID出来,但他们的位置是随机的 到目前为止,我已经做到了这一点,但最后的RAND()没有任何影响: SELECT wp_posts.ID, wp_posts.post_title, wp_postmeta.meta_value,
SELECT wp_posts.ID, wp_posts.post_title,
wp_postmeta.meta_value,
axess_clients.client_nom,
axess_clients.site
FROM wp_posts
LEFT JOIN axess_clients ON axess_clients.client_id = wp_posts.ID
LEFT JOIN wp_postmeta ON wp_postmeta.post_id = wp_posts.ID
WHERE wp_posts.post_type='clients' AND wp_posts.post_status='publish'
AND wp_postmeta.meta_key='_thumbnail_id'
ORDER BY wp_posts.ID ASC, RAND() LIMIT 15 OFFSET ".$_POST['data']
有没有办法通过MySQL实现这一点,或者我真的必须为此拉出PHP?当您有多个表达式按排序时,第二个表达式用于在第一个表达式相等的组内排序。它无法对已由第一个表达式排序的行重新排序 要重新排序某些内容,需要将第一个排序放入子查询中
SELECT *
FROM (
SELECT wp_posts.ID, wp_posts.post_title,
wp_postmeta.meta_value,
axess_clients.client_nom,
axess_clients.site
FROM wp_posts
LEFT JOIN axess_clients ON axess_clients.client_id = wp_posts.ID
LEFT JOIN wp_postmeta ON wp_postmeta.post_id = wp_posts.ID
WHERE wp_posts.post_type='clients' AND wp_posts.post_status='publish'
AND wp_postmeta.meta_key='_thumbnail_id'
ORDER BY wp_posts.ID ASC
LIMIT 15 OFFSET " . $_POST['data']) AS x
ORDER BY RAND()