|
|
|
Нестандартное условие
|
|||
|---|---|---|---|
|
#18+
Есть таблица news, интересует только поля title (заголовок новости) и date (дата). Есть таблица peoples, там поле name (имя человека) Что нужно: вывести на странице имена людей, про которых было написано больше всего за неделю. Поиск имен можно организовать по заголовкам новостей по полю title. Как это реализовать, подскажите пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 12:02 |
|
||
|
Нестандартное условие
|
|||
|---|---|---|---|
|
#18+
Если "в лоб", то так: Код: sql 1. 2. 3. 4. 5. 6. Но упоминания людей будут искаться буквально по вхождению подстроки, т.е. строго в той же словоформе и включая вхождения в другие имена (например, "Иван" входит в "Иванов", а они оба входят в "Иванович"). Если нужна морфология и более интеллектуальное определение вхождения, то это уже задача не для MySQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 12:26 |
|
||
|
Нестандартное условие
|
|||
|---|---|---|---|
|
#18+
miksoft, спасибо большое за код работает для данного проекта. Но можно попросить вас подкорректировать для другого сайта. Там тоже самое, только все записи (и новости и люди) находятся в одной таблице news. Но все люди записаны там со строкой category 1, а новости category 2. Не могу понять как их разделить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 13:38 |
|
||
|
Нестандартное условие
|
|||
|---|---|---|---|
|
#18+
Сейчас получается так: SELECT title FROM news WHERE title LIKE CONCAT('%', title, '%') GROUP BY title ORDER BY COUNT(*) DESC LIMIT 3 Но естественно не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 13:39 |
|
||
|
Нестандартное условие
|
|||
|---|---|---|---|
|
#18+
Может как-то так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 15:22 |
|
||
|
Нестандартное условие
|
|||
|---|---|---|---|
|
#18+
Krevedko, спасибо, все работает. Только не могу за последнюю неделю вывести популярных людей с большинством записей. В условие добавляю выборку за неделю - возвращает пустой результат. Вот так добавляю: WHERE ....... AND tc_date >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 18:04 |
|
||
|
|

start [/forum/topic.php?fid=47&tid=1831910]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
161ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 497ms |

| 0 / 0 |
