est-il possible de rechercher une table, mais de préformer le champ de la requête pour ne correspond à des numéros que ... Par exemple, je stocke le numéro de téléphone sous (123) 555-1234
lorsque quelqu'un recherche Comment puis-je écrire une requête SQL pour préformer la valeur de champ avant de la chercher ... p> Comme '% 1235555%' code> Il ne reviendra pas comme vous pouvez le voir. P>
SELECT * FROM Contacts WHERE FormatFieldHere(phoneNumber) LIKE '%123555%'
3 Réponses :
Étant donné qu'il n'y a pas une fonction de remplacement de regex dans Remplacer () Code> :
SELECT * FROM Contacts
WHERE replace(replace(replace(replace(phoneNumber, '(', ''), ')', ''), '-', ''), ' ', '') LIKE '%123555%'
Dans MySQL 8.0, vous pouvez utiliser fonction < Code> Regexp_replace () Code> Pour vous débarrasser de tous les caractères non chiffres avant de faire la comparaison, comme: REGEXP '[^ 0-9 ] ' code> signifie: tout sauf un chiffre. Avec cette technique, vous n'avez pas besoin d'énumérer expliquer chaque personnage que vous souhaitez ignorer. P> p>
Un autre moyen est de créer une colonne virtuelle persistante dans laquelle MySQL automatique stocke le numéro de téléphone normalisé comme celui-ci. Le peut faire avec la fonction de GMB décrit.
Remarque: la fonction de création de la colonne virtuelle est pour Mariadb an, je ne suis pas sûr de la même syntaxe dans MySQL P>
alors vous pouvez utiliser votre fonction J'aime: p> échantillon fort> p> Créer une table et insérer des lignes forte> p> < Pré> xxx pré> Voir les lignes forte> p> Ajouter 2 autres lignes de test strong> p> Sélectionner sur la nouvelle colonne forte> p>
Cela pourrait ne pas être possible dans votre cas d'utilisation, mais pouvez-vous stocker les numéros de téléphone comme une chaîne de numéros ordinaire sans formatage, puis les formater avant la présentation? De cette façon, vos numéros de téléphone seront consultables avec la syntaxe que vous avez donnée ci-dessus.
Stackoverflow.com/a/1794075/2154871 Regardez cette réponse sur la manière de scinder la saisie des utilisateurs, vous le miliez alors. Retour ensemble Application des crochets et Hyen, qui a déclaré que je regarderais changer la façon dont il est stocké pour le rendre plus simple. Enfact, modifier la recherche de sa recherche, forcer l'utilisateur à utiliser deux champs que vous les combinez dans une requête de recherche formatée beaucoup plus facile que la division puis formatage