Изкарване на еднакви резултати?

pr0_gamer

Registered
Здравейте!

При регистрация на потребител записвам неговото IP. Въпросът ми е:
Как да изкарам в някоя страница само тези IP-та, които са иднакви.

Пример:

User --- IP
demo -- 0.0.0.0
demo1 -- 0.0.0.1
demo3 -- 0.0.0.0

Да изкарва само demo и demo3 ?
Благодаря предварително!
 
pr0_gamer каза:
Хм... така не показва всички потребители...
А дали е възможно грешката да е в твоя телевизор? Дай да видим какво направи, какъв резултат получи и какво не ти харесва в него :idea:
 
С Group BY само няма как да му покаже всички. Там му показва само първия резулат. Трябва да се направи така:

SELECT id, ip, username FROM таблица WHERE ip IN (SELECT ip FROM таблица GROUP BY ip HAVING COUNT(ip) > 1)

Обяснение по кода:

Подзаявката изкарва като резултат само ip-tata , който се повтарят повече от веднъж в таблицата. И след това главната заявка чрез WHERE ip IN изкарва всички резултати от таблицата, които ip е равно на ip-tata върнати от подзаявката.

Така като имаш талиблица users със следните записи:

id|ip|username
1|0.0.0.0|username 1
1|0.0.0.0|username 2
1|0.0.0.1|username 3
1|0.0.0.1|username 4
1|0.0.0.1|username 5
1|0.0.0.2|username 6


Подзаявката ще стане така:

SELECT ip FROM users GROUP BY ip HAVING COUNT(ip) > 1)

И резултатът ще е така:
0.0.0.0
0.0.0.1

И тогава заявката ти ще търси един вид в това:

SELECT id, ip, username FROM users WHERE ip IN ('0.0.0.0', '0.0.0.1')
 
Код:
$sql = mysql_query("SELECT * FROM `users` ORDER BY ip DESC");
while($row = mysql_fetch_assoc($sql))
{
print $row['username'].' -- '.$row['ip'].'<br/>';
}
//--
 
adrian каза:
С Group BY само няма как да му покаже всички. Там му показва само първия резулат. Трябва да се направи така:

SELECT id, ip, username FROM таблица WHERE ip IN (SELECT ip FROM таблица GROUP BY ip HAVING COUNT(ip) > 1)

Обяснение по кода:

Подзаявката изкарва като резултат само ip-tata , който се повтарят повече от веднъж в таблицата. И след това главната заявка чрез WHERE ip IN изкарва всички резултати от таблицата, които ip е равно на ip-tata върнати от подзаявката.

Благодаря! Така ми изкарва само тези, които имат повече от 1 акаунт :?:
 

Back
Горе