从SQL表中选择行的百分比?

mek*_*k33 7 php mysql sql limit

我有一个带有PHP脚本的站点,这个脚本在返回由JavaScript文件访问的数据内部有一个SQL查询.数据是一个巨大的航班数据列表,我需要能够选择(比方说)任意指定日期的总飞行量的40%.为了论证,让我们这样说:

$query = "SELECT * FROM `Flight_Data` WHERE DepDateTimeUTC LIKE '%1/1/14%' ";
Run Code Online (Sandbox Code Playgroud)

我知道要获得一个随机数量的行,你只需要使用ORDER BY RAND() LIMIT 40',理想情况下我想说,LIMIT 40%但这不起作用.

编辑:

$query = "SELECT * FROM `Flight_Data` WHERE DepDateTimeUTC LIKE '%1/1/14%' ";
$row = mysqli_fetch_row($result);
$total = $row[0];
$percent = $total * 0.40;
$query = "SELECT * FROM `Flight_Data` WHERE DepDateTimeUTC LIKE '%1/1/14%' LIMIT . $percent ";
Run Code Online (Sandbox Code Playgroud)

Rag*_*nar 4

您可以COUNT记录所有记录,然后计算%您需要的数据,如下所示:

$query = "SELECT COUNT(*) FROM `Flight_Data` WHERE DepDateTimeUTC LIKE '%1/1/14%' ";
$result = mysqli_query($connection,$query);
$row = mysqli_fetch_row($result));

$total = $row[0];
$percent = intval($total * 0.40);

$query = "SELECT * FROM `Flight_Data` WHERE DepDateTimeUTC LIKE '%1/1/14%' LIMIT ". $percent;
//execute your query....
Run Code Online (Sandbox Code Playgroud)

  • `$percent` 可能包含小数,因此您应该将其转换为整数 (2认同)