Как удалить дубли из выборки?
1.
horoshinkin777 (30.11.2018 / 14:30)
Здравствуйте. Помогите решить проблему.
Как удалить дубли из выборки? вот код
$result = mysqli_query($db, "SELECT id,uid FROM mess WHERE otpravitel = '$my_id' OR poluchatel = '$my_id' ORDER by id DESC");
while ($myrow = mysqli_fetch_array($result))
{
echo $myrow['uid'].'<br>';
}
Добавлено через 02:27 сек.
['uid'] это собеседник
2.
horoshinkin777 (30.11.2018 / 16:51)
Никто не знает?((
3.
JustZero (30.11.2018 / 17:10)
horoshinkin777, group by можешь попробовать
4.
Вантуз-мен (30.11.2018 / 17:47)
horoshinkin777, вот вы любители изобретать велосипеды
прежде чем писать что-то нужно это спроектировать
ты должен решить множество вопросов, до написания структуры, да и во время написания она не раз будет изменена
но когда у тебя возникают вопросы как сделать чтобы работало уже на придуманной тобой структуре это говорит о плохо спроектированной бд
Ты подумал как будешь выводить не саму переписку, а диалоги, кто с кем общался, как вывести последний диалог
как быстро будет работать запрос, будут ли использоваться индексы, какие индексы будут использоваться
я уже писал что дублировать сообщения в базе, входящие - отправленные не совсем плохо, если это окупится быстрым и удобным запросом, с минимумом индексов на колонках
5.
horoshinkin777 (01.12.2018 / 03:56)
Вантуз-мен, итак все по минимуму. Одна таблица всего. Список диалогов есть.
Таблица вида
id,otpravitel,poluchatel,uid,text
Где я это либо отправитель либо получатель, а uid жто с кем диалог
6.
horoshinkin777 (01.12.2018 / 04:59)
И я не дублирую сообщения
7.
Андрей (01.12.2018 / 08:50)
@Vantuz, итак все по минимуму. Одна таблица всего. Список диалогов есть.
Таблица вида
id,otpravitel,poluchatel,uid,text
Где я это либо отправитель либо получатель, а uid жто с кем диалог
А где ячейка time
8.
horoshinkin777 (01.12.2018 / 09:41)
Андрей, в данном случае можно по id сортировать
9.
horoshinkin777 (01.12.2018 / 10:25)
В итоге как удалить дубли то кто нить подскажет?
10.
JustZero (01.12.2018 / 10:48)
И я не дублирую сообщения
откуда у тебя тогда дубли берутся?
GROUP BY text
11.
Вантуз-мен (01.12.2018 / 18:30)
Where (otpravitel =1 and poluchatel =2) or (otpravitel=2 and poluchatel=1)
12.
ZiGR (01.12.2018 / 20:27)
Ты id используешь где-нибудь?
13.
horoshinkin777 (02.12.2018 / 07:42)
Нужно удалить дубли uid из выборки. Тоесть удалить дубли диалогов.
id для сортировки.
14.
ZiGR (02.12.2018 / 21:40)
SELECT DISTINCT uid FROM mess WHERE otpravitel = '$my_id' OR poluchatel = '$my_id' ORDER by id DESC
Будут тебе уникальные uid.
15.
ramzes (03.12.2018 / 13:49)
автору надо для начала над структурой посидеть, если он не может сам из своей бд получить нужное в потребном виде, вероятно он ее спроектировал не продумав как следует, иначе вопрос не появился бы в принципе
16.
horoshinkin777 (04.12.2018 / 01:28)
ZiGR, я так пробовал. Сортировка не работает в данном случае. Незнаю почему...
URL:
https://visavi.net/topics/44104