- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Не знаю как правильно сформулировать, но, попытаюсь.
Есть таблица личных сообщений,
pm:
pm_id //айди
user1_id //отправитель
user2_id //получатель
pm_user2_new //прочитал ли получатель письмо
Задача1 минимум : из таблицы нужно выбрать, по ОДНОЙ ПОСЛЕДНЕЙ записи пользователя
Если группировать по user1_id , то получаем ОДНУ ЗАПИСЬ, но ПЕРВУЮ!
Такой запрос выводит все сообщения, на пхп я конечно сортирую данные и могу получить ОДНУ ПОСЛЕДНЮЮ ЗАПИСЬ. Но возможно есть возможность все это сделать на MYSQL!
Задача 2 максимум: если такое вообще возможно, выводить последнее сообщение для пары из user_id1 user_id2 или user_id2 user_id1.
зы. Я наверное мазохист, но я говорю об одном MYSQL запросе! Просто я себе не представляю как это можно сделать, но ведь это не означает что решения нет!
спасибо.
DESC LIMIT 1
сейчас все то что мне надо решает вот такая строка в цикле перебора foreach
---------- Добавлено 22.01.2015 в 10:16 ----------
DESC LIMIT 1
)))
я всегда считал что лимит для другого ))
возможно я не понятно выразился ))
В смысле для другого ?
LIMIT 1 выведет только одну записать
А мне нужно вывести все, но уникальные и последние!
А мне нужно вывести все, но уникальные и последние!
Определитесь уже.
---------- Добавлено 22.01.2015 в 14:31 ----------
А вообще лучше решать на PHP такие вопросы. Чем проще запросы, тем быстрее mysql будет их обрабатывать.
Определитесь уже.
определился
А мне нужно вывести все, но уникальные и последние!
А вообще лучше решать на PHP такие вопросы. Чем проще запросы, тем быстрее mysql будет их обрабатывать.
с одной стороны проще запросы быстрее обработка
с другой стороны больше запросов больше обращений к бд
с одной стороны проще запросы быстрее обработка
с другой стороны больше запросов больше обращений к бд
И что что их больше? Кэш справляется отлично с этим. Уж побыстрее чем JOIN хранить в кэше.
И что что их больше? Кэш справляется отлично с этим. Уж побыстрее чем JOIN хранить в кэше.
те по вашему, лучше одного запроса и той строчки пхпх что я написал.
сделать , сейчас прикину, штук 6+- простых запросов?
Честно сказать даже не знаю. Хотелось бы мнение спецов.
Задача 2 максимум: если такое вообще возможно, выводить последнее сообщение для пары из user_id1 user_id2 или user_id2 user_id1.
зы. Я наверное мазохист, но я говорю об одном MYSQL запросе! Просто я себе не представляю как это можно сделать, но ведь это не означает что решения нет!
Решение есть, при чем достаточно шустрое, общая мысль тут в первом абзаце
/ru/forum/comment/5029477 .
Смысл тут в том, что бы выбрать только те значения, для которых значения с бОльшей датой не существует (джоиним таблицу с постами саму на себя соединяя по дате и оставляем только те строки, в которые приджоинить ничего не удалось).
Другое решение - вложенный мускул запрос, т.е. используете select max(postid) по нужным фильтрам и потом уже делаете выбор полных данных по типу select (полные данные) from ( select max(postid) по нужным фильтрам ). Но все это в одном sql запросе, просто используя вложенные.
Более традиционен и понятен второй вариант.
Более быстр первый.
На пхп такую задачу решать это маразм конечно.
p.s.: думается сейчас плохо, если нужно точный запрос - вечером накидаем.
Если группировать по user1_id , то получаем ОДНУ ЗАПИСЬ, но ПЕРВУЮ!
те по одной записи, но где он получатель и где отправитель? в итоге результатом должно быть 2 записи?
если так то можно через UNION два запроса объединить с GROUP BY только в селект добавьте уже функцию которая к полю группировки применяется например MAX(pm_id)