SQL COMME condition à vérifier pour entier?
Je suis en utilisant un ensemble de SQL COMME conditions à passer par l'alphabet et de la liste de tous les articles commençant par la lettre appropriée, par exemple, pour obtenir tous les livres dont le titre commence par la lettre "A":
SELECT * FROM books WHERE title ILIKE "A%"
C'est très bien pour les lettres, mais comment puis-je liste tous les articles commençant par n'importe quel numéro? Pour ce que ça vaut c'est sur une Postgres DB.
Vous devez vous connecter pour publier un commentaire.
Qui va sélectionner (par une expression régulière) chaque livre a un titre commençant par un nombre, c'est que ce que vous voulez?
si vous voulez entiers qui, au départ, avec des chiffres spécifiques, vous pouvez utiliser:
ou de l'utilisation (si tous vos nombres ont le même nombre de chiffres (une contrainte serait alors utile))
PostgreSQL supporte les expressions régulières correspondant.
Donc, votre exemple ressemblerait
Cela va correspondre à un titre commençant par un ou plusieurs chiffres et en option un espace
Si vous voulez la recherche en tant que chaîne de caractères, vous pouvez convertir le texte comme ceci:
En supposant que vous êtes à la recherche pour "les numéros qui commencent par 7" plutôt que "les chaînes qui commencent par 7," peut-être quelque chose comme
Ou quelle que soit la Postgres équivalent de convertir est.
Je suis en retard pour la fête ici, mais si vous avez affaire avec des entiers de longueur fixe, vous pouvez simplement faire de comparaison des entiers:
Testé sur PostgreSQL 9.5 :
-- uniquement des chiffres
ou,
-- le début avec chiffres
Laquelle des deux est indexable?
Celui-ci est certainement btree-indexables:
Remarque que ':' vient après '9' en ASCII.
Dans PostreSQL vous pouvez utiliser SIMILAIRE À opérateur (plus):