Struktura tabeli: id, imie, ilosc.
Z ilością znaków nie ma problemu, ale z resztą nie wiem jak to ugryźć.
SELECT * FROM imie WHERE ilosc='7' ORDER BY id
SELECT * FROM imie WHERE ilosc='7' ORDER BY id
SELECT imie FROM imiona WHERE CHAR_LENGTH(imie)<=7 AND 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 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 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 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 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 NOT(LOCATE('y',LEFT(LOWER(imie), LOCATE('y', LOWER(imie))))>0 AND LOCATE('y', MID(LOWER(imie), LOCATE('y', LOWER(imie))+1,7))>0)
$tablica_bez_powtorzen_samoglosek = preg_grep('/\b\w*([eyuiao])\w*?\1\w*/', $twoja_tablica, PREG_GREP_INVERT);