Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wybór określonych rekordów z bazy
shreker
post
Post #1





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 21.05.2008

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


Witam. Potrzebuję z bazy danych z tabeli "imie" wybrać określone rekordy spełniające określone kryterium: imie ma mieć 7 znaków, oraz zawierać pojedyncze ale niepowtarzające się samogłoski.
Struktura tabeli: id, imie, ilosc.
Z ilością znaków nie ma problemu, ale z resztą nie wiem jak to ugryźć.

  1. SELECT * FROM imie WHERE ilosc='7' ORDER BY id


Ten post edytował shreker 18.08.2017, 17:26:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

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


Takie coś mi przyszło do głowy:

  1. SELECT imie
  2. FROM imiona
  3. WHERE CHAR_LENGTH(imie)<=7 AND
  4. NOT(LOCATE('a',LEFT(LOWER(imie), LOCATE('a', LOWER(imie))))>0 AND LOCATE('a', MID(LOWER(imie), LOCATE('a', LOWER(imie))+1,7))>0) AND
  5. NOT(LOCATE('e',LEFT(LOWER(imie), LOCATE('e', LOWER(imie))))>0 AND LOCATE('e', MID(LOWER(imie), LOCATE('e', LOWER(imie))+1,7))>0) AND
  6. NOT(LOCATE('i',LEFT(LOWER(imie), LOCATE('i', LOWER(imie))))>0 AND LOCATE('i', MID(LOWER(imie), LOCATE('i', LOWER(imie))+1,7))>0) AND
  7. NOT(LOCATE('o',LEFT(LOWER(imie), LOCATE('o', LOWER(imie))))>0 AND LOCATE('o', MID(LOWER(imie), LOCATE('o', LOWER(imie))+1,7))>0) AND
  8. NOT(LOCATE('u',LEFT(LOWER(imie), LOCATE('u', LOWER(imie))))>0 AND LOCATE('u', MID(LOWER(imie), LOCATE('u', LOWER(imie))+1,7))>0) AND
  9. NOT(LOCATE('y',LEFT(LOWER(imie), LOCATE('y', LOWER(imie))))>0 AND LOCATE('y', MID(LOWER(imie), LOCATE('y', LOWER(imie))+1,7))>0)


Szukamy danej samogłoski, dzielimy wyraz na dwie części w miejscu jej wystąpienia i sprawdzamy, która z nich zawiera daną samogłoskę. Odrzucamy jeśli obydwie części zawierają daną samogłoskę.

Np.:
Cze(e=1) sław(e=0) OK, Czesła(a=1) w(a=0) OK, całość OK
A(a=1) delajda(a=1) NIE OK, Ade(e=1) lajda(e=0) OK, całość NIE OK

Ten post edytował trueblue 18.08.2017, 19:36:23
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: 5.10.2025 - 17:52