Je rencontre des problèmes pour comparer les valeurs trouvées dans les champs VARCHAR.Comparaison des valeurs d'une chaîne dans une requête MySQL
J'ai une table avec des produits et chaque produit a un volume. Je stocke le volume dans un champ VARCHAR et c'est généralement un nombre (30, 40, 200 ..) mais il y a des produits qui ont plusieurs volumes et leurs données sont stockées séparées par des points-virgules, comme 30, 60, 80. Je sais que le stockage de plusieurs volumes comme celui-ci n'est pas recommandé, mais je dois travailler avec lui comme si c'était le cas. J'essaye d'implémenter une fonction de recherche par volume pour les produits. Je veux également afficher les produits qui ont un volume plus grand ou égal à celui recherché. Ce n'est pas un problème avec les produits qui ont un seul volume, mais c'est un problème avec les produits à volume multiple. Peut-être qu'un exemple rendra les choses plus claires: Disons que j'ai un produit avec ceci dans son champ volume: 30; 40; 70; 80. Si quelqu'un cherchait un volume, disons 50, je veux que ce produit soit affiché. Pour ce faire, je pensais écrire ma propre fonction MySQL personnalisée (je ne l'ai jamais fait auparavant) mais peut-être que quelqu'un peut offrir une solution différente. Je m'excuse pour mon mauvais anglais mais j'espère avoir clarifié ma question.
Merci.
Les performances vont être terribles sur cette requête si la table est très grande car vous ne pourrez pas tirer parti des index sur le terrain. – JohnFx
Les volumes sont-ils toujours stockés dans l'ordre croissant de gauche à droite? –
JohnFx, nous allons utiliser le cache, donc j'espère que cela va améliorer les performances. Mark Byers, je ne suis pas sûr d'être honnête, je vais devoir vérifier avec quelqu'un demain. – b2238488