반응형
타이머로 1과 60 사이에서 선택한 각 행에 대해 임의의 정수를 생성하려고합니다.
SELECT downloads.date, products.*, (FLOOR(1 + RAND() * 60)) AS timer
나는 범위에서 임의의 정수를 선택하는 방법 으로이 FLOOR 함수를 검색하고 계속해서 다가옵니다. 이것은 모든 행에 대해 1을 제공합니다. 내가 무엇을 놓치고 있습니까?
나는 mysql 5.0.75에 있습니다.
다음은 중첩 문제 일 수 있다고 생각되는 나머지 쿼리입니다.
SELECT *
FROM (
SELECT downloads.date, products.*, FLOOR(1 + (RAND() * 60)) AS randomtimer,
(
SELECT COUNT( * )
FROM distros
WHERE distros.product_id = products.product_id
) AS distro_count,
(SELECT COUNT(*) FROM downloads WHERE downloads.product_id = products.product_id) AS true_downloads
FROM downloads
INNER JOIN products ON downloads.product_id = downloads.product_id
) AS count_table
WHERE count_table.distro_count > 0
AND count_table.active = 1
ORDER BY count_table.randomtimer , count_table.date DESC LIMIT 10
해결 방법
이것은 나를 위해 일하고 있습니다. 당신의 mysql 버전은 아마도?
SELECT id, (FLOOR( 1 + RAND( ) *60 )) AS timer
FROM users
LIMIT 0 , 30
참조 페이지 https://stackoverflow.com/questions/984396
반응형
'MySql' 카테고리의 다른 글
MySQL 쿼리에서 IF 조건으로 계산 (0) | 2020.09.17 |
---|---|
MySQL mysql 저장 프로 시저에 대한 기본 매개 변수를 가질 수 있습니까? (0) | 2020.09.17 |
MySQL 로그를 시작하고 확인하려면 어떻게해야합니까? (0) | 2020.09.17 |
MySQL 포트 3306 오류에서 실행되는 또 다른 mysqld 서버 (0) | 2020.09.17 |
MySQL mySQL dateTime 범위 쿼리 문제 (0) | 2020.09.17 |
댓글