2010-04-30 6 views
0

Comment j'écris où clause où la valeur a des espaces:sql requête avec espace dans la valeur

En fait j'utilise openJPA et je dois définir le paramètre. La valeur que je vais définir a un espace, par exemple: String somevalue = "prénom nom"; query.setparameter (somevalue);

Je l'ai fait mais ne fonctionne pas. N'hésitez pas à nous faire part de vos suggestions. Merci.

+0

Quel RDBMS utilisez-vous? –

+0

À quoi ressemble votre tableau? –

+0

Voyez si le nom que vous tapez a des apostrophes. Si oui, vous devrez leur échapper avec double apostrophes: 'SELECT * FROM table1 WHERE nom = 'Miles O''Brien';' Aussi, si vous avez besoin de faire un filtrage (par exemple s'il y a des espaces parasites) plutôt que une correspondance exacte, regardez dans le mot clé LIKE. –

Répondre

2

Cela devrait fonctionner. L'espace dans les guillemets est valide. Il y a peut-être des espaces après le nom, ou le nom de famille est incorrect.

+0

en fait query.setParameter (valeur avec espace); ne fonctionne pas ai-je besoin de faire quelque chose de spécial avec query.setparameter() – user234194

1

Cette syntaxe fonctionne en effet; vous devez taper un nom qui n'existe pas.

sqlite> CREATE TABLE FOO (name TEXT); 
sqlite> INSERT INTO FOO VALUES('joe smith'); 
sqlite> SELECT * FROM FOO WHERE name = 'joe smith'; 
joe smith 

Si ceci est une recherche unique, vous pourriez être mieux essayer the LIKE operator de trouver le match:

sqlite> SELECT * FROM FOO WHERE name LIKE '%smith%'; 
joe smith 
+0

en fait query.setParameter (value with space); ne fonctionne pas dois-je faire quelque chose de spécial avec query.setparameter() – user234194

0

Il n'y a rien de mal à cette requête.

Si cela ne renvoie pas de résultats, c'est parce que vous avez un problème avec vos données. Est-ce que vous stockez comme 'char' ou 'varchar'? Si c'est 'char', alors vous aurez des caractères de remplissage supplémentaires à surveiller.

+0

en fait query.setParameter (value with space); ne fonctionne pas Ai-je besoin de faire quelque chose de spécial avec query.setparameter() – user234194

Questions connexes