Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> GROUP BY zmienna z replace ostatniej literki - jak?
Dopler
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 30.01.2008

Ostrzeżenie: (0%)
-----


problem zapewne banalny, jednak pomimo kilku podobnych wątków żaden nie wyjaśnia mojego problemu:

Jak napisać SELECT aby robił GROUP BY [nazwisko z zamienioną ostatnią literką na i jeśli na końcu jest a]

Wyjaśniam:

Mam prostą bazę osób (nazwisko i imię). Na stronie wybieram literkę z listy i dostaję listę nazwisk rozpoczynających się na daną literę. Wyniki są pogrupowane - tzn jak jest Kowalski Adam i Piotr otrzymuje jeden link "Kowalski" (po jego kliknięciu otrzymuję listę osób z tego nazwiska). To jest proste - GROUP BY a potem funkcja wyszukiwania wg nazwiska.

Potrzebuję jednak zmodyfikować tak to pierwsze wyszukiwanie, aby grupowało także nazwiska kobiece i męskie (tzn te z końcówką na -i oraz -a). Czyli otrzymywać jeden link "Kowalski" - tak aby po jego kliknięciu wychodziła lista i kobiet i mężczyzn.

Nie mogę tego zrobić jednak przez absolutne obcięcie jednej litery bo jeśli nazwiska są np. Baka i Bako - to muszą być osobne linki.

Na stronie mam dwie funkcje - jedna do wyszukania wg litery, druga wg nazwiska. Ta druga działa po kliknięciu w link. Potrzebuję tej pierwszej.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Ok zaraz pokombinuje (IMG:style_emoticons/default/wink.gif)

  1. $getWord=mysql_query("
  2. SELECT
  3. (CASE SUBSTRING(`nazwisko`, -3, 3)
  4. WHEN 'ska' THEN CONCAT(SUBSTRING(`nazwisko` FROM 1 FOR CHAR_LENGTH(nazwisko)-3), 'ski')
  5. ELSE (CASE SUBSTRING(`nazwisko`, -3, 3)
  6. WHEN 'cka' THEN CONCAT(SUBSTRING(`nazwisko` FROM 1 FOR CHAR_LENGTH(nazwisko)-3), 'cki')
  7. ELSE `nazwisko`
  8. END)
  9. END) AS `nazwisko_po_zmianie`
  10. FROM `fnt`
  11. WHERE `nazwisko` LIKE '$letter%'
  12. GROUP BY `nazwisko_po_zmianie`
  13. ", $db);


jeśli się nei pomyliłem to powinno chodzić

Ten post edytował Sephirus 28.10.2011, 08:05:56
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 00:01