Désolé je suis nouveau à travailler avec des bases de données - j'essaie d'effectuer une requête Cela obtiendra tous les caractères similaires à une chaîne de SQL. P>
Par exemple, P>
Si je cherche tous les utilisateurs qui commencent par une certaine chaîne, quelque chose comme S * ou SM * qui retournerait "Smith, smelly, sourires, etc ..." P>
Suis-je sur la bonne voie avec cela? P>
Toute aide serait appréciée et merci d'avance! p>
6 Réponses :
Le le caractère comme code>
opérateur est ce que vous recherchez Pour, donc pour votre exemple, vous auriez besoin de quelque chose comme: % code> est la carte sauvage dans SQL. p> p>
C'est ce que je cherchais à la recherche - comme j'avais vraiment besoin de quelque chose pour trouver des noms et d'autres champs qui "ont commencé avec" une chaîne spécifique. Désolé pour mon pauvre libellé.
Pour obtenir tous les utilisateurs un nom de Smith
SELECT * FROM [Users] WHERE LastName LIKE 'Smith%'
Votre question n'est pas entièrement claire.
Si vous voulez tous les utilisateurs avec le nom de famille Smith, une recherche régulière fonctionnera: p> si vous voulez tout Les utilisateurs commençant par 'S' et se terminent par "TH", vous pouvez utiliser comme et une carte générique: p> (notez la norme SQL de nombreux caractères génériques de '%' plutôt que '*'). p> Si vous voulez vraiment une correspondance "sonne comme", de nombreuses bases de données prennent en charge une ou plusieurs recherches d'algorithme Soundex. Vérifiez la documentation pour votre produit spécifique (que vous ne mentionnez pas dans la question). P> p>
Vous pouvez également aimer les résultats de Soundex code>, en fonction de votre préférence pour le nom de famille Similarité.
select *
from [users]
where soundex('lastname') = soundex( 'Smith' )
or upper(lastname) like 'SM%'
Sauf que Soundex n'est pas très bon (par exemple, quelque chose comme un taux de 60% de faux taux positif a été observé). Il a été conçu pour assortir des noms de langue anglaise, pas des mots arbitraires. Il tombe sur son visage donné du texte arbitraire (ou du texte en dehors des 26 lettres de base de l'alphabet). Voici le brevet original de 1917. Google.com/patents/about?id=ebdgaaaaebaj&dq = 1,261,167
standard (ANSI) SQL dispose de deux caractères génériques à utiliser avec le mot-clé similaire:
De plus, SQL Server étend la correspondance générique similaire à inclure la spécification de jeu de caractères, plutôt qu'un spécificateur de jeu de caractères d'expression régulier normal: P>
Les jeux de caractères peuvent être spécifiés de manière normale comme une plage aussi: p>
La sémantique de la correspondance de la lettre de la lettre, une personne à charge de la séquence de collation utilisée. Il peut ne pas être sensible à la casse. P>
En outre, pour correspondre à un support carré gauche littéral ('[]'), vous where 'abc[x' like 'abc[x'
SQL ne peut pas faire cela ... placer le symbole pourcentage au milieu.
SELECT * FROM users WHERE last_name LIKE 'S%' and last_name LIKE '%th'
Notez que différentes versions de SQL vous donnent des choix différents; mais ils supportent tous
% code>.