(espace) dans l'énoncé d'une requête SQLite et android stud

Résolu/Fermé
rapidegoyes Messages postés 70 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 1 septembre 2023 - Modifié le 8 déc. 2021 à 22:29
rapidegoyes Messages postés 70 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 1 septembre 2023 - 10 déc. 2021 à 23:19
Bonjour,

Je m'explique, j'ai créé une requête pour recherche d'une ligne dans ma BDD SQLite.
Le mot qui permet la sélection à été entré dans la colonne NOM de ma table.

J'ai réussi à prendre en compte les majuscules et minuscules c'est OK.
Par contre l'espace en fin ou début de mot me pose problème.

J'aimerai que la recherche aboutisse avec espace ou sans ce qui n'est pas le cas en ce moment.

Voici ma requête elle fonctionne sauf avec les espaces en début ou fin de mot:

Le mot est sous la forme d'une variable, lorsque j'enregistre ma ligne je tape le mot au clavier, il est ensuite pris en compte par ma variable varCherche_mot.

    public Cursor rechercheMot(){
SQLiteDatabase db = this.getWritableDatabase();
return db.rawQuery ( "SELECT ID as _id, * FROM produit_table WHERE NOM COLLATE NOCASE = '"+ varCherche_mot +"' ORDER BY NOM, NOM ASC ",null);
}


Cela fait un moment que je cherche une possible solution mais vraiment je n'y arrive pas .

Merci de vouloir m'orienter
Très cordialement

rapidegoyes


Configuration: Windows / Firefox 94.0
A voir également:

4 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
8 déc. 2021 à 22:35
Bonjour
Intéresse-toi à like
https://www.sqlitetutorial.net/sqlite-like/
1
rapidegoyes Messages postés 70 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 1 septembre 2023 7
9 déc. 2021 à 22:45
Bonsoir,

J'ai essayé avec LIKE, je n'ai pas réussi car je n'arrive pas à me connecter à ma variable " varCherche_mot"
citée dans ma requête formulée voir mon début du post.

Je ne vois pas comment obtenir la liaison avec ma variable.

Moi j'entre le nom du produit au clavier ensuite via la variable je peux rechercher mon enregistrement dans la BDD.

Merci pour ton aide, as tu une idée comment prendre en compte une variable avec LIKE ?

A +++ cordialement

rapidegoyes
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
9 déc. 2021 à 23:21
Il faut que tu nous montre ce que tu as essayé de faire pour qu'on puisse t'aider à le corriger
0
rapidegoyes Messages postés 70 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 1 septembre 2023 7
10 déc. 2021 à 22:18
Bonsoir,
Merci de me répondre.

Voici mon essai qui renvoie rien, ma variable n'est pas reconnue

 
public Cursor rechercheMot(){
SQLiteDatabase db = this.getWritableDatabase();
return db.rawQuery ( "SELECT ID as _id, * FROM produit_table WHERE NOM LIKE '%varCherche_mot%' ORDER BY NOM, NOM ASC ",null); }



varCherche_mot est ma variable, celle qui contient ce que j'ai entré dans ma colonne NOM

Par exemple je tape escalope dans ma colonne NOM en majuscules ou minuscules et la requête ci-dessous
m'affiche la ligne complète pour escalope.
Mon problème est que le moindre espace en fin de mot ou début, ne permet pas d'afficher mon enregistrement.

public Cursor rechercheMot(){
SQLiteDatabase db = this.getWritableDatabase();
return db.rawQuery ( "SELECT ID as _id, * FROM produit_table WHERE NOM COLLATE NOCASE = '"+ varCherche_mot +"' ORDER BY NOM, NOM ASC ",null);
}


a +++
cordialement rapidego
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
10 déc. 2021 à 22:24
Il faudrait, dans ton premier code .. faire comme dans ton second .. c'est à dire concaténer la string de ta requête avec ta variable...

 WHERE NOM LIKE '%"+ varCherche_mot +"%' 
0
rapidegoyes Messages postés 70 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 1 septembre 2023 7
Modifié le 10 déc. 2021 à 23:20
Bonsoir jordane45

Infiniment merci pour ton aide.

Cela fonctionne avec sous sans espace lors de ma recherche d'enregistrements.

Tu me retires une épine du pied car cela fait de mois que cet espace en fin de mot m'embêtait

Mille fois merci et à +++
Cordialement

rapidegoyes
0