본문 바로가기
MySql

MySQL shuffle random MYSQL results

by 베이스 공부 2020. 9. 19.
반응형

다음 코드는 임의의 데이터베이스 이미지와 하나의 특정 이미지 (내가 원하는)를 표시합니다. 이미지 ID 11이 항상 먼저 표시되므로 데이터베이스 쿼리 후 이러한 결과를 섞을 수 있습니까? 이미지 ID 11을 다른 것들 사이에서 무작위로 표시하고 싶습니다.

SHUFFLE ()을 사용할 수 있습니다. 그렇다면 정확히 어디에 넣을까요?

PHP를 배우는 동안 어떤 도움이라도 감사하겠습니다.

감사.

<?php 

mysql_connect("", "", "") or die(mysql_error()) ; 
mysql_select_db("images") or die(mysql_error()) ;


$photo=mysql_query("SELECT * FROM `profile_images` ORDER BY (ID = 11) DESC, RAND()      
LIMIT 7");


while($get_photo=mysql_fetch_array($photo)){ ?>

<div style="width:300px;">


<img src="<? echo $get_photo['url']; ?>">


</div>

<? } ?>

 

해결 방법

 

php로 검색된 후 섞을 수 있습니다.

$photos = array();
while ($get_photo = mysql_fetch_array($photo))
    $photos[] = $get_photo;

shuffle($photos);

또는 하위 쿼리로 수행 할 수 있습니다.

SELECT A.* FROM (
    SELECT * FROM `profile_images` 
    ORDER BY (ID = 11) DESC, RAND()      
    LIMIT 7
) as A
ORDER BY RAND()

 

참조 페이지 https://stackoverflow.com/questions/9457029

 

 

반응형

댓글