J'ai une requête qui compare une valeur de chaîne contre un champ de nom dans ma base de données. La structure du champ Nom dans la base de données n'est pas cohérente, il pourrait s'agir de ces éléments suivants: ma valeur de chaîne peut être dans n'importe quelle structure, mais il s'agit actuellement de: p> requête: p> ceci ne renvoie pas toujours les enregistrements. Quelle est la requête la plus fiable pour faire une comparaison dans n'importe quelle structure? P> p>
5 Réponses :
Utiliser ou p>
Utiliser comme avec ou clause comme p>
Utiliser Notez que vous avez obtenu le O / P aussi rare par votre requête car il ne suffit que la dernière ligne qui rencontre une structure entière dans votre clause similaire avec où nom in ('doe%', 'john%') code> p>
où nom comme "DOE%" ou "Jean%" code> p>
,% code> qui ne signifie pas fonctionner pour 2 mots séparés p>
Si vous savez à l'avance toutes les variations possibles du nom complet, c'est l'approche la plus efficace. Avec un index sur la colonne dans code > condition
FULL_NAME CODE>, qui devrait être très rapide. P>
full_name LIKE '%John%' AND full_name LIKE '%Doe%'
Ceci: transformera pleinement_name à: p> extrait ce qui reste et droit de 'John, DOE' code> ou
'' '' / code>
Même si cela ne contient pas
, code>.
Ceux-ci: p>
, code> dans la valeur de votre chaîne de modèle.
Donc, vous pouvez faire ceci: p>
Vous pouvez diviser cela en noms, puis comparer à l'aide de le Cela dit, vous devez corriger le modèle de données, de sorte que vous stockez les prénoms et les noms de famille dans différentes colonnes. P> P> comme code>. Par exemple:
bool_and () code> nécessite que toutes les composantes correspondent à la correspondance. p>
Vous pouvez également essayer avec ce
Full_Name dans ('John Doe', 'Doe John', 'Doe, John') Code>