0
votes

SQL comme fonction de cordes similaires

base de données SQL DBO: xxx

Exemple:

Recherches d'utilisateur: 49 London Road, Kent

SQL Affiche: Ne peut pas trouver '49 London Road, Kent ' Résultats similaires pour '49 London Road, Kent '

  • 49 London Road, Hertford
  • 49 London Road, Hitchin
  • 32 London Road, St Albans

    J'essaie de penser à la meilleure façon de coder cela.

    Pour le moment, j'ai deux formes, une pour l'entrée de l'utilisateur et la seconde pour afficher les résultats. < / p>

    Je veux juste que l'utilisateur entrait du texte dans une zone de texte et le SQL pour rechercher des mots dans cette zone de texte qui correspond à la table.

sql

5 commentaires

Supprimez votre commentaire et ajoutez la note à votre question en cliquant sur le lien Modifier ci-dessous sur les balises.


Vous dites "je sais que ce n'est pas le SQL" mais comme '%' + @ adresse + '% n'a pas beaucoup de sens.


La liste Bulleted est-elle le résultat souhaité?


Vous devez peut-être vérifier les caractères de la carte Wild pour SQL Server. w3schools.com/sql/sql_wildcards.asp


Je viens de faire savoir que ce n'était pas le SQL à la faute, mais je dois maintenant trouver un travail autour de ce que si une piqûre contient un mot dans cette table, il montrera les données. Je vais maintenant avoir plusieurs entrées utilisateur jusqu'à ce que je puisse trouver un autre travail en utilisant simplement une entrée utilisateur


3 Réponses :


0
votes

Vous dites:

Pensez simplement à la recherche Google, il tire le résultat principal mais aussi tout allumettes similaires. p> blockQuote>

L'opérateur similaire dans SQL produit utilise la logique très différente de la syntaxe de recherche Google et de la logique de traitement de la requête. Néanmoins, l'opérateur similaire est puissant pour la correspondance à cordes. Il y a beaucoup de ressources à vérifier, veuillez consulter les ressources au bas de ce texte. P>

Pour votre cas spécifique, à l'aide d'une déclaration comme celle-ci: P>

SELECT ID, Property, PostCode, Road, Borough, Town, District from T WHERE
Road LIKE "%LONDON%" OR Road LIKE "%ROAD%" OR ROAD LIKE "%STREET%"


5 commentaires

Merci pour la réponse, je ne pense pas que je m'explique correctement. Je sais que ce n'est pas le SQL, je suis maintenant des problèmes. Je dois penser à une solution de contournement que je ne peux pas sembler gérer.


Cela pourrait vous aider si vous affichez les données que vous avez stockées et le résultat que vous attendez ainsi que ce que l'utilisateur entre.


J'ai rééquilibré ma question un peu, espérons-le, cela a plus de sens.


J'ai effectué une mise à jour de ma réponse précédente en fonction de votre nouvelle question sous «Modifier». J'espère que ça aide.


C'est un travail autour qui devrait être bon à utiliser pour maintenant jusqu'à ce que je retrouve ma base de données, malheureusement tellement de tables et de lignes que je dois changer de haha. Merci mon pote.



0
votes

Essayez la recherche de texte complet Doit être quelque chose comme ci-dessous. Pas testé. Je n'ai pas accès à des composants de texte intégral xxx


3 commentaires

Je dois aller en colère mais cela ne cesse de faire tomber et je la regarde et je ne vois pas ce que la question est. system.data.sqlclient.sqxception: "syntaxe incorrecte près du mot clé" Où '.'


@Nixfee ce que j'ai fait initialement ne travaillerait pas. Avoir à faire plus pour cela


Je ne l'ai jamais utilisé auparavant, je vais essayer de vérifier certains exemples. Merci!



0
votes

Je pense que c'est ce que vous devez faire.

Si l'utilisateur recherche: 49 London Road, Kent

diviser cette chaîne dans une gamme de chaînes de cette manière ( Nous divisons ici en utilisant comme "caractère espace )

  1. 49
  2. London
  3. route,
  4. kent

    pour cette liste de chaînes ( dans votre code )

    1. 49 - Déterminez si la première position est numérique-chiffres
    2. London - Déterminez s'il s'agit d'une lettre uniquement sans chiffres
    3. route, - Déterminez s'il s'agit également de lettres et que vous devrez peut-être ignorer les caractères de la virgule ou du non-alphabet
    4. Kent - Déterminez s'il s'agit de lettres seulement .

      Lorsque vous avez terminé de déterminer ou de scinder l'utilisateur de l'utilisateur comme celui-ci dans votre code, vous allez maintenant à la SQL et vérifiez la chaîne 1 dans le champ de propriété, par exemple '49' Dans ce cas, vous obtiendrez des ID de propriété 1 et 3 Vous vérifiez ensuite les chaînes restantes.

      Voici la requête d'échantillon que je produirais xxx


0 commentaires