2017-08-29 1 views
-3

Je veux rechercher le mot « ROOT » de ma base de données en utilisant les mots « Enracinée » ou « Unroot ».Puis-je effectuer une opération LIKE "reverse" dans SQLite?

J'espère que je ne suis pas mal compris à vouloir effectuer cette opération comme normale

SELECT Word FROM tblWordList WHERE Keywords LIKE '%ROOT%' 

Je veux faire le contraire si je « OOT » ou « ROO » dans la base de données , il sera également recherché lorsque je saisis "ROOTED".

J'ai réellement les mots ROO et OOT dans la colonne Mots-clés. Mais il y a aussi d'autres mots tels que SAM, MOON, RIP. Maintenant, je veux rechercher la valeur dans la colonne Word ou disons juste l'ID de la ligne dans laquelle les sous-chaînes de ROOTED sont apparues. dans ce cas, je devrais obtenir en retour l'id de la ligne de ROO et OOT.

Un code pour android + sqlite serait génial mais même la commande de l'opération serait vraiment très utile.

+3

Ce n'est pas le "contraire", pourriez-vous être plus clair? – kenfire

+0

La colonne contient-elle * seulement * 'ROO' /' OOT'? – Kayaman

+0

Vous devriez étudier le fonctionnement de l'opérateur SQL 'LIKE'. –

Répondre

1
SELECT Word FROM tblWordList WHERE Keywords LIKE '%ROO%' OR Keywords LIKE '%OOT%' 

Vous aurez besoin de venir avec votre propre algorithme pour déterminer les sous-ensembles particulier du terme de recherche (ROOTED) que vous souhaitez utiliser.

+0

J'ai en fait les mots ROO et OOT dans la colonne Mots-clés. Mais il y a aussi d'autres mots tels que SAM, MOON, RIP. Maintenant, je veux rechercher la valeur dans la colonne Word ou disons juste l'ID de la ligne dans laquelle les sous-chaînes de ROOTED sont apparues. dans ce cas, je devrais obtenir en retour l'id de la ligne de ROO et OOT. –

+0

@McDuran: Comme je l'ai écrit, vous devrez trouver votre propre algorithme pour déterminer quels sous-ensembles du terme recherché ('ROOTED') que vous voulez utiliser. Il n'y a pas d'opérateur SQL pour ce que vous cherchez. – CommonsWare

0

Lorsque vous voulez faire correspondre les valeurs OOT et ROOTED, LIKE avec ces valeurs particulières ressemblerait à ceci:

'ROOTED' LIKE '%OOT%' 

Donc, si le premier est une valeur constante, et le second vient de la base de données, il suffit de l'écrire de cette façon:

SELECT ... WHERE 'ROOTED' LIKE '%' || Keywords || '%'; 
+0

Pouvez-vous s'il vous plaît élaborer votre réponse: J'ai essayé d'utiliser cette commande: SELECT ID de tblInformation OERE 'tommen' LIKE '%' || Mots-clés || '%'; Il a retourné 0 résultats même lorsque j'ai 3 lignes dans les mots-clés où la sous-chaîne 'tommen' est présente (tommening, tommens, stommeny). Et ce que je veux réaliser, c'est même les lignes qui contiennent des sous-chaînes de 'tommen', comme les lignes avec 'tom' ou 'men' ou 'mme' apparaîtront quand j'exécuterai la requête. –

+0

Ce n'est pas ce que vous avez demandé dans le quesion.Veuillez noter que la chaîne vide est également une sous-chaîne, de sorte que votre description correspond à toutes les lignes. –

+0

Désolé si je ne suis pas clair. J'ai vraiment du mal à expliquer en anglais. J'ai réalisé que ce que tu as dit à propos de la chaîne vide est vrai. Mais encore, existe-t-il un moyen d'exécuter ceci et juste de filtrer le résultat où la correspondance est seulement la chaîne vide? –