![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 31.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Wertuję od czasu jakiegoś dłuższego internet w poszukiwaniu zapytania które wybierze mi tylko rekordy, w których dana wartość kolumny nie została wykorystana w innych rekordach. Wszędzie trafiam na SELECT DISTINCT ale to z ząłożenia jest dla mnie bezużyteczne jako, że pokaże mi wszystkie wartości wywalając duplikaty. Ja natomiast chcę wyciągnąć wszystkie wartości KTÓRE NIE POSIADAJĄ duplikatu i TYLKO te wartości wywalając te, które duplikaty posiadają - najlepiej w ogóle by było gdybym mógł dać warunek NIE ZAWIERA a nie NIE JEST RÓWNE jako, że dokładnie chodzi mi o wyciąganie rekordów z adresami email (VARCHAR) gdzie czasem w polu są dwa lub więcej adresów. Coś jak SELECT UNIQUE choc w MySQL nie ma takiego zapytania bo UNIQUE można użyć tylko przy tworzeniu tabeli. Oczywiście mogę to zrobić w PHP+MySQL za pomocą pętli ale uważam, że nie po to są silniki baz danych żeby kodować to w PHP. Moje pytanie do mądrzejszych ode mnie w MySQL brzmi: Czy istnieje (i jeżeli tak to jakie) jedno zapytanie pozwalające wyciągnąć wartości, które się nie powtarzają (lub najchętniej nie zawierają) w innych rekordach. Ten post edytował josephk 6.05.2014, 14:31:30 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 31.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ok analizując opcję agregacji można faktycznie wyciągnąć rekordy bez powtórzeń
to już pół sukcesu (IMG:style_emoticons/default/smile.gif) To może nieco dalej - jak to zmodyfikować żebym mógł wywalić wszystkie rekordy których wartości są sobie równe ale i te które zawierają w sobie inne? czyli np. mamy dwa rekordy z wartościami pola email: 1) email = 'filip@filip.pl' 2) email = 'wiola@filip.pl;filip@filip.pl' i żeby w takim przypadku nie brało pod uwagę żadnego z nich w wynikach? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 09:13 |