Match de valeurs séparées par une virgule dans la colonne

Si j'ai une colonne appelée "Catégories" avec dire science,maths,english dans la ligne séparées par des virgules, comme le montre, comment pourrais-je correspondre à toutes les lignes avec la catégorie contenant maths?

J'ai essayé un simple LIKE mais il n'est pas tout à fait exact, car il peut être "poo_science", qui lors de la recherche pour '%science%' correspondent à la fois.

J'ai regardé autour de StackOverflow et il y a beaucoup de questions similaires, mais tous semblent vouloir renvoyer des données comme une liste séparée par des virgules ou quelque chose - pas tout à fait ce que je suis après.

Je préfère ne pas utiliser une procédure stockée et ne peut pas utiliser la recherche de texte intégral. J'ai une procédure stockée j'ai utilisé qui a ajouté un autre personnage ('$') autour de chaque valeur, puis recherche pour '$value$'... est-ce trop méchant? Je suis après un peu plus de méthode simple.

  • C'est pourquoi les attributs à plusieurs valeurs sont mal.
  • Je pensais que l'augmentation des problèmes de simultanéité est pourquoi ils sont mal.
  • Il n'est pas question que je laisse cette conception de stand. Vous avez besoin d'une table d'enfant pour les données de sorte que vous pouvez effectivement qwuery il. Ne jamais stocker une virgule delimeted liste.
  • Ils sont mauvais parce que vous avez alors de diviser la chaîne en utilisant une fonction par ligne, puis de recherche de chacun de ces ou de match sur des modèles exacts qui tombe parfois en dehors de caractères spéciaux. C'est cher, on ne pas obtenir les avantages de l'indexation, pas de normalisation, et c'est, bien, ******* ennuyeux. Désolé, les personnages dans les étoiles ne sont pas un juron, par accident, j'ai collé mon mot de passe en 😉
  • Pourquoi sur terre serait vous "préférez ne pas utiliser une procédure stockée"? Merci de lire stackoverflow.com/questions/22907/... et stackoverflow.com/questions/2734007/... pour le pré-existantes débats.
  • Pouvez-vous élaborer sur la façon LIKE clauses sont vulnérables à une Injection SQL? Tout ce que je peux l'imagerie est quelqu'un d'entrer dans un % à cause d'une analyse de table...
  • Fredrickson et Beurk - Merci à vous deux. Vous avez raison. Je cherchais à tort et à travers. Commentaires retirée, et merci de m'avoir fait penser!!!! Je pensais à ceci: gremwell.com/sql_injection_in_like_clause où il est facile de se tromper.

InformationsquelleAutor Alex Guerin | 2012-02-23