Выберите процент строк из таблицы SQL?

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

Надеюсь, это вам помогло.