====== MySql Random ====== 랜덤하게 하나의 행을 선택하기가 필요하기도 하다. [[http://hompy.us/mysql_study/3993|참조]] * [[http://akinas.com/pages/en/blog/mysql_random_row/|MySQL Random Row 구현 방법별 성능 비교]] ===== 간편하지만 성능이 떨어지는 방법 ===== 정렬 기준을 ''rand()'' 함수로 잡는다. select * from TABLE_NAME order by rand() limit 1; ===== 성능을 높이려면 ===== -- 원하는 행의 갯수보다 작은 랜덤 값을 생성하여 $temp 변수에 저장하고, -- 쿼리 1 SELECT CAST(RAND()*(SELECT COUNT(*) FROM table) AS SIGNED)-1; -- 혹은 쿼리 2 SELECT FLOOR(RAND() * COUNT(*)) AS offset FROM table; -- limit 시작값으로 지정한다. SELECT * FROM table1 LIMIT $temp,1;