2010-11-28 25 views
0

Mon professeur pointe vers Oracle et débute ça, mais j'ai l'espoir de le faire avec une injection pure dans MySQL. Je veux rechercher la base de données dans phpMyadmin et trouver exactement deux K's. Est-ce possible?Trouver le nombre exact de caractères avec MySQL

La chose la plus proche je suis arrivé est:

SELECT etunimi, sukunimi FROM nimet WHERE sukunimi LIKE '%k%k%n'; 

Il est le dernier %k%k%n qui doit être résolu. Pouvez-vous m'aider à prouver que mon professeur a tort? : P


acclamations,
Peetra

+2

. W h a t? –

+0

http://tinyurl.com/so-hints –

+0

Voulez-vous dire que vous voulez trouver des caractères répétés? Downvoted parce que je ne pense pas que la question est claire. – Wes

Répondre

1

Utilisez opérateur REGEXP MySQL:

SELECT etunimi, sukunimi 
    FROM nimet 
WHERE sukunimi REGEXP '^[^k]*k[^k]*k[^k]*n$' 

Je ne sais pas ce que le n à la fin est pour, puisque vous ne mentionnez pas dans votre question, mais je l'ai laissé, juste au cas où.

+0

La fin représente un caractère que le seach doit inclure comme dernier caractère car il doit être inclus dans la recherche. Un peu stupide, c'est une base de données très simple que nous utilisons, mais tous les numéros de sécurité sociale de classe sont inclus, donc je ne peux pas l'afficher. :( – peetra

+0

la requête dans mon premier post donne plus de ou deux K, je veux trouver 2 k rien de moins et rien de plus, est-ce possible, l'expression rationnelle ci-dessus n'a pas fonctionné – peetra

+0

L'expression régulière devrait retourner toutes les chaînes avec exactement Pouvez-vous fournir un exemple d'une chaîne qui a plus ou moins de deux K, mais qui correspond toujours à l'expression régulière ci-dessus? Cela pourrait m'aider à diagnostiquer le problème –