У меня есть сайт с PHP-скриптом, у этого скрипта есть SQL-запрос внутри, возвращающий данные, к которым обращается файл JavaScript. Эти данные представляют собой огромный список данных о рейсах, и мне нужно иметь возможность выбирать (скажем, случайные 40% от общего количества рейсов за любой указанный день). Для аргументов давайте скажем так:
$query = "SELECT * FROM `Flight_Data` WHERE DepDateTimeUTC LIKE '%1/1/14%' ";
Я понимаю, что для получения случайного числа строк вы просто используете 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 ";
Вы можете 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....
Поскольку вы используете php-скрипт, вы сможете достичь того, чего хотите. Что вы можете сделать, так это получить общее количество строк в таблице, которое выглядит следующим образом:
SELECT count(*) AS Total FROM Flight_Data
С помощью php вы можете рассчитать 40% от общей суммы.
Допустим, $ myPercent содержит рассчитанные 40% от общего числа. Вы можете использовать значение $ myPercent в пределе как
$query = "SELECT * FROM `Flight_Data`
WHERE DepDateTimeUTC LIKE '%1/1/14%'
LIMIT ".$myPercent;
Здесь мы экранируем переменную php из строки запроса mysql, что является хорошей практикой.
В MySQL, %
используется как подстановочный знак, поэтому он не может быть использован так, как вы думали, что вы можете в пределе.
Надеюсь, это помогло вам.