powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Нестандартное условие
7 сообщений из 7, страница 1 из 1
Нестандартное условие
    #39214511
mast88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица news, интересует только поля title (заголовок новости) и date (дата).
Есть таблица peoples, там поле name (имя человека)

Что нужно: вывести на странице имена людей, про которых было написано больше всего за неделю. Поиск имен можно организовать по заголовкам новостей по полю title.

Как это реализовать, подскажите пожалуйста.
...
Рейтинг: 0 / 0
Нестандартное условие
    #39214554
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если "в лоб", то так:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT people.name
FROM news, people
WHERE news.title LIKE CONCAT('%', people.name, '%')
GROUP BY people.name
ORDER BY COUNT(*) DESC
LIMIT 3


Но упоминания людей будут искаться буквально по вхождению подстроки, т.е. строго в той же словоформе и включая вхождения в другие имена (например, "Иван" входит в "Иванов", а они оба входят в "Иванович").
Если нужна морфология и более интеллектуальное определение вхождения, то это уже задача не для MySQL.
...
Рейтинг: 0 / 0
Нестандартное условие
    #39214645
mast88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, спасибо большое за код работает для данного проекта.

Но можно попросить вас подкорректировать для другого сайта. Там тоже самое, только все записи (и новости и люди) находятся в одной таблице news. Но все люди записаны там со строкой category 1, а новости category 2. Не могу понять как их разделить.
...
Рейтинг: 0 / 0
Нестандартное условие
    #39214646
mast88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас получается так:


SELECT title
FROM news
WHERE title LIKE CONCAT('%', title, '%')
GROUP BY title
ORDER BY COUNT(*) DESC
LIMIT 3


Но естественно не работает.
...
Рейтинг: 0 / 0
Нестандартное условие
    #39214756
Krevedko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может как-то так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT news.title,COUNT(*)
FROM news, (select news.title from news where news.category=2) as newsreal
WHERE news.category=1 and

newsreal.title LIKE CONCAT('%', news.title, '%')
GROUP BY news.title
ORDER BY COUNT(*) DESC
LIMIT 3
...
Рейтинг: 0 / 0
Нестандартное условие
    #39215005
mast88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Krevedko, спасибо, все работает. Только не могу за последнюю неделю вывести популярных людей с большинством записей.

В условие добавляю выборку за неделю - возвращает пустой результат.

Вот так добавляю: WHERE ....... AND tc_date >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
...
Рейтинг: 0 / 0
Нестандартное условие
    #39215153
mast88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все сделал :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Нестандартное условие
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]