Это даст вам номер для использования в качестве «м» (предел)
TRUNCATE((RAND()*50),0);
... заменить 50 на n.
Чтобы проверить это, попробуйте следующее:
SELECT TRUNCATE((RAND()*50),0);
Я должен предупредить, что это может вернуть 0 в результате, это нормально для вас?
Например, вы можете сделать что-то вроде этого:
SELECT COUNT(*) FROM YOUR_TABLE
... и сохранить результат в переменной с именем totalRows , например. Тогда вы могли бы сделать:
SELECT * FROM YOUR_TABLE LIMIT TRUNCATE((RAND()*?),0);
где вы подставили '?' с переменной totalRows , в зависимости от используемого вами стека технологий.
Это теперь понятнее? Если нет, пожалуйста, добавьте больше информации к вашему вопросу.