recherche

Maison  >  Questions et réponses  >  le corps du texte

Valeurs de requête dans une chaîne séparée par des virgules dans MySQL

<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粉763748806P粉763748806499 Il y a quelques jours481

répondre à tous(2)je répondrai

  • P粉036800074

    P粉0368000742023-08-18 10:38:23

    FIND_IN_SETest votre ami dans ce cas

    select * from shirts where FIND_IN_SET(1,colors)

    répondre
    0
  • P粉254077747

    P粉2540777472023-08-18 00:12:51

    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

    répondre
    0
  • Annulerrépondre