У меня есть сайт с 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 %
используется в качестве подстановочного знака, поэтому его нельзя использовать, как вы думали, вы можете ограничить.
Надеюсь, это вам помогло.