2009-08-28 6 views
-1
Create Proc CargarAnuncioPorBusqueda 
    @searchString varchar(max) 
AS 
select * from Anuncio where titulo Like '%'+ @searchString + '%' 

Dites que l'utilisateur écrit: "pools", cette procédure stockée retournerait-elle tout ce qui a des "pools" dans le "titulo"?Est-ce que cela fonctionnerait pour rechercher quelque chose dans ma base de données?

Merci. :)

+0

Cela peut dépendre de la version de SQL Server que vous utilisez. Pouvez-vous spécifier la version - 2000, 2005, 2008, autre? –

+1

En fonction de l'origine de votre variable @searchString, vous pouvez vous ouvrir à l'injection SQL. Juste quelque chose à penser; Les procédures stockées ne sont pas une solution miracle contre l'injection SQL. – rmeador

+0

N'ai-je pas déjà corrigé votre mauvaise balise 'mssql' une fois ce matin? –

Répondre

3

Oui. Cela retournerait "spools", "poolside", "pools", etc.

+0

Super! Tout ce que j'avais besoin de savoir. Je vous remercie. –

2

Oui c'est l'utilisation correcte de l'opérateur similaire.

Vous pouvez également faire une Commence logique avec comme ceci:

like @searchterm + '%' 

et se termine avec comme ceci:

like '%' + @searchterm 
+0

Vos startwith et endswith sont en arrière. –

+0

@Joel LOL, merci! Édité – Joseph

0

Ce n'est pas une recherche très rapide cependant.

+0

Comment est-ce une recherche lente? Je suis nouveau à SQL en général. ;) –

+1

Ce n'est pas sargable (cela signifie qu'il ne peut pas utiliser d'index). –

+0

il va regarder chaque ligne de la table, ce qui signifie que plus les données augmentent, plus lent et plus lent –

Questions connexes