MSSQL Expression régulière
J'ai la REGEX suivante: ^[-A-Za-z0-9/.]+$
Actuellement, il vérifie si la valeur saisie dans une zone de texte correspond à cela. Si non, il renvoie une erreur.
J'ai besoin de vérifier si quelque chose a déjà disparu dans la base de données ce n'est pas pour ce match.
J'ai fatigué:
SELECT * FROM *table* WHERE ([url] NOT LIKE '^[-A-Za-z0-9/.]+$')
SELECT * FROM *table* WHERE PATINDEX ('^[-A-Za-z0-9/.]+$', [url])
Mise à JOUR
Donc après un peu de recherche j'ai compris que je ne pense pas que je peux utiliser des expressions régulières.
Je pensais que je pouvais faire quelque chose comme cela? Sa ne me donne pas les résultats escomptés, mais son fonctionnement ressemble à rien d'autre. Quelqu'un peut-il repérer quelque chose de mal avec elle?
SELECT *,
CASE WHEN [url] LIKE '^[-A-Za-z0-9/.]+$'
THEN 'Match'
ELSE 'No Match'
END Validates
FROM
*table*
source d'informationauteur Clare Barrington
Vous devez vous connecter pour publier un commentaire.
Merci à vous tous pour votre aide.
C'est ce que j'ai utilisé à la fin:
MySQL
Dans MySQL, les regex syntaxe est la suivante:
Utiliser le
REGEXP
clause au lieu deLIKE
. Ce dernier est pour la correspondance de motif à l'aide de%
et_
des caractères génériques.SQL Server
Depuis que vous avez fait une faute de frappe, et vous êtes à l'aide de SQL Server (pas MySQL), vous devrez créer un définis par l'utilisateur fonction CLR pour exposer les regex fonctionnalité.
Prendre un coup d'oeil à cet article pour plus de détails.
Utilisation
REGEXP
pasLIKE
: