Autor Zpráva
slon_cz
Profil
Zdravím, obracím se na Vás opět o žádost o radu. Vypisuji z databáze uživatele, ovšem potřeboval bych, zda existuje nějaká podmínka, která by mi vypsala jen uživatele, kteří mají v poli ip_adresa, pole1, pole2, pole3 stejný obsah. Respektive aby mi to vypsalo uživatele, co mají třeba stejný obsah v poli ip_adresa, ale zároveň i uživatele, co mají ip adresu jinou, ale shodují se například v poli email, snad jsem to vysvětlil dostatečně, nenapadá mě totiž, jak by toto šlo kontrolovat a vypisovat na úrovni sql příkazu.
Radek9
Profil
Asi pořád úplně nechápu, co vlastně chceš. Můžeš dát nějaký konkrétní příklad na datech?
slon_cz
Profil
nickname | email | ip | pole1 | pole2 | id
test1 |at@f.c | 78 | 12 | auto | 1
test2 |at@f.c | 12 | 17 | kolo | 2
test3 |t@f.g | 78 | 14 | auto | 3
test4 |ae@f.c | 78 | 10 | auto | 4


a sql příkaz vypíše sloupky s id 1/3/4 protože se shodují s polem pole2 a nebo s polem email, prostě vypsat duplikáty.
Keeehi
Profil
SELECT * FROM users
WHERE ip_address IN (
    SELECT ip_address FROM users GROUP BY ip_address HAVING COUNT(*) > 1
)
OR column_1 IN (
    SELECT column_1 FROM users GROUP BY column_1 HAVING COUNT(*) > 1
)
OR column_2 IN (
    SELECT column_2 FROM users GROUP BY column_2 HAVING COUNT(*) > 1
)
slon_cz
Profil
To je přesně ono, co potřebuji, děkuji! Je možnost tam přidat, aby to nebralo pole, pokud je prázdné nebo NULL? Děkuji
Keeehi
Profil
Samozřejmě, stačí přidat WHERE
SELECT ip_address FROM users WHERE ip_address IS NOT NULL AND ip_address != '' GROUP BY ip_address HAVING COUNT(*) > 1
slon_cz
Profil
Děkuji, nevěděl jsem kam přesně ten řetězec s podmínkou přidat.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: