Я хочу выбрать запись из своей базы данных случайным образом, но не при каждом вызове, а в зависимости от какого-либо другого внешнего фактора, например, недели года или дня года.Как я могу достичь этого?
Это скажет мне текущую неделю:
SELECT DATE_FORMAT(CURDATE(),'%u');
Итак, чтобы получить запись, основанную на этом значении, я выбираю номер записи:
SELECT (DATE_FORMAT(CURDATE(),'%u')+0) MOD (SELECT COUNT(*)
FROM my_view
ORDER BY id);
Итак, моя попытка:
SELECT * FROM my_view
LIMIT (SELECT (SELECT DATE_FORMAT(CURDATE(),'%u')+0) MOD (SELECT COUNT(*)
FROM my_view
ORDER BY id))
,1;
И все, что я получаю, это:
ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near '(SELECT (SELECT DATE_FORMAT(
CURDATE(),'%u')+0) MOD (SELECT COUNT(*) FROM ' at line 1
Может быть, это не лучший подход?Это не возможно?Спасибо.
ОБНОВЛЕНИЕ: Я хочу вставить это в VIEW, поэтому я могу использовать только операторы SELECT.В любом случае, я уже решил это, пожалуйста, смотрите этот комментарий: Еженедельный ORDER BY на MySQL