MySQL Присоединиться к таблице на случайном Нравится

0

Я пытаюсь присоединиться к таблице, используя подобное и возвращая случайный результат.

По сути, я просто хочу присоединиться к домену в формате поддомена...

например: Домен: indonesian.dating Субдомен (Потенциальные совпадения): asia.indonesian.dating или bandung.indonesian.dating и т.д.

Изображение 174551

Один запрос, который я пытался:

SELECT b.domainname subdomain, a.*
FROM facebook AS a
JOIN domains AS b ON a.domainname LIKE '%testing.dating' ORDER BY RAND() LIMIT 1
WHERE 
a.datetime < NOW();

Примечание: таблица facebook содержит 130 доменов, а для результата возврата должен быть один случайный субдомен для каждого из 130 доменов facebook. например:

indonesian.dating → bule.indonesian.dating africa.dating → lagos.africa.dating japanese.dating → tokyo.africa.dating.

и если запрос был запущен снова, субдомен будет меняться, поскольку они являются Random...

Это возможно? Я могу сделать отдельный запрос для поддоменов, но скорее использовал бы один домен...

спасибо адам

Текущий запрос - группа Пока не работает... Примечание: дескриптор представляет собой уникальное значение, такое как имена доменов в таблице facebook...

SELECT * FROM (
SELECT b.domainname subdomain, a.*, a.handle
FROM facebook AS a
join domains b on b.domainname like concat("%",a.domainname)
WHERE 
a.datetime < NOW()
ORDER BY RAND()
) AS FBPages
GROUP BY handle
  • 0
    Является ли столбец соединения настоящим соединением? Я имею в виду, имеет ли смысл join domains b on a.domainname=b.domainname ? В этом случае это SELECT b.domainname subdomain, a.* FROM facebook AS a JOIN domains AS b ON a.domainname = b.domainname WHERE a.datetime < NOW() and a.domainname LIKE '%testing.dating' ORDER BY RAND() LIMIT 1; возможность переписать ваш запрос как SELECT b.domainname subdomain, a.* FROM facebook AS a JOIN domains AS b ON a.domainname = b.domainname WHERE a.datetime < NOW() and a.domainname LIKE '%testing.dating' ORDER BY RAND() LIMIT 1; ?
  • 0
    LIKE "% testing.dating" - это значение необходимо изменить - есть 130 доменов, из которых я хочу сопоставить случайный поддомен. Если бы это был только тот, который я сделал бы, как вы сказали ... спасибо за попытку :)
Показать ещё 5 комментариев
Теги:

1 ответ

1
Лучший ответ

Попробуйте переупорядочить запрос:

SELECT b.domainname subdomain, a.*
FROM facebook AS a
JOIN domains AS b ON a.domainname LIKE concat('%', b.domainname)
WHERE 
a.datetime < NOW()
ORDER BY RAND() LIMIT 1;
  • 0
    Я обновлю исходный вопрос, где я до ...
  • 0
    Для правильной работы предложения group by требуется функция агрегирования. Попробуйте добавить sum (), count (), group_concat () или все, что вам нужно, чтобы сделать "group by" значимым

Ещё вопросы

Сообщество Overcoder
Наверх
Меню