( gelei | 2024. 06. 04., k – 13:03 )

Köszönöm a visszajelzést. Itt egy új megoldás, amely figyelembe veszi az ékezetes kisbetűket, és elkerüli a reguláris kifejezések használatát:

SELECT * FROM tabla_neve WHERE LEFT(név, 1) COLLATE utf8_bin IN ('a', 'á', 'b', 'c', 'd', 'e', 'é', 'f', 'g', 'h', 'i', 'í', 'j', 'k', 'l', 'm', 'n', 'o', 'ó', 'ö', 'ő', 'p', 'q', 'r', 's', 't', 'u', 'ú', 'ü', 'ű', 'v', 'w', 'x', 'y', 'z') AND születési_dátum IS NULL;

Ebben a lekérdezésben:

  • A LEFT(név, 1) az első karaktert veszi a név mezőből.
  • A COLLATE utf8_bin biztosítja, hogy az összehasonlítás binárisan történik, így figyelembe véve az ékezetes karaktereket is.
  • Az IN operátorral soroljuk fel az összes magyar kisbetűt, beleértve az ékezetes karaktereket.
  • A születési_dátum IS NULL feltétel ellenőrzi, hogy a születési_dátum mező értéke nincs megadva (NULL).

Ez a megoldás figyelembe veszi a magyar ékezetes kisbetűket, és elkerüli a reguláris kifejezések használatát, ami gyorsabb végrehajtást eredményezhet.