Valeurs de requête dans une chaîne séparée par des virgules dans MySQL
P粉763748806
P粉763748806 2023-08-17 14:24:54
0
2
447
<p>J'ai un champ <code>COLORS (varchar(50))</code> dans ma table <code>SHIRTS</code> ,5,12,15,</code>. Chaque numéro représente une couleur disponible. </p> <p>Lors de l'exécution de la requête <code>sélectionnez * parmi les chemises dont les couleurs sont telles que '%1%'</code> pour obtenir toutes les chemises rouges (couleur=1), j'obtiens également la couleur grise ( = 12) et chemises orange (=15). </p> <p>Comment dois-je réécrire la requête pour qu'elle sélectionne uniquement toutes les couleurs portant la couleur 1 au lieu de toutes les couleurs contenant le chiffre 1 ? </p>
P粉763748806
P粉763748806

répondre à tous(2)
P粉036800074

FIND_IN_SETest votre ami dans ce cas

select * from shirts where FIND_IN_SET(1,colors)
P粉254077747

La méthode classique consiste à ajouter des virgules sur les côtés gauche et droit :

select * from shirts where CONCAT(',', colors, ',') like '%,1,%'

Mais find_in_set fonctionne aussi :

select * from shirts where find_in_set('1',colors) <> 0
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal