- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Выдает ошибку
А нужно вытащить 5 случайных id из таблици table
SELECT id FROM table ORDER BY RAND() LIMIT 5
Kasperaitus, так я знаю. он медленный.
мне нужно типа так
SELECT *
FROM table
WHERE RAND () < 0.1
ORDER BY RAND()
LIMIT 0 , 30
но тут указываеться два раза RAND ()
а мне нужно вложиться в один
Во первых, имена полей обрамляются в обратных кавычках а не прямых. Подзапрос нужно брать в скобки и указать псевдоним. Во вторых, вам нужно сюда каким-то образом прикрепить вторую таблицы. Ну и в третьих https://www.google.ru/search?client=opera&rls=ru&q=order+by+rand+optimization&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest
Не совсем простой способ с использованием клиентского языка, в моем случае ПХП:
<?php
$min = 0; #значение минимального айдишника
$max = 100500; # значение максимального айдишника
$cntIter = 5; #кол-во АЙдишников
$vals = array();
for($i=1; $i<=$cntIter; $i++)
{
$rand = rand($min, $max);
while(in_array($rand, $vals))
{
#Тупо крутим цикл, чтобы не было совпадений с предыдущими значениями
}
$vals[] = $rand;
}
$in = implode(', ', $vals);
$sql = "SELECT * FROM table WHERE id IN($in)";
print_r($vals); #убрать после проверки работоспособности
?>
ЗЫ. на счет случайной сортировки для Мускула читал на хабре, но к сожалению линка не дам(потерял).
ЗЫЫ. Пример может не сработать, если у Вас в базе не все айдишники с диапазона. То есть ПХП сгенерит 5 чисел, а окажется что некоторых нет. Но в таком случае можно нагенерить 20-30 айдишников и сделать LIMIT 5, но это уже костылёк;)
UPDATE: нашел что-то аналогичное давно прочитанному хабравскому материалу. Вот читайте: http://hudson.su/2010/09/16/mysql-optimizaciya-order-by-rand/
Не совсем понятно, зачем нужна случайная сортировка.
Я конечно могу догадываться, и знаю ряд задач, но чтоб эти задачи применялись на фронтендах - редкость. А если и применяются, то вопрос о производительности не стоит.
Одна из задач - показать случайную статью, случайный товар.
Но если очень хочется, то вот мое:
SELECT * FROM table
START :rand() LIMIT 1