suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Fragen Sie Werte in durch Kommas getrennten Zeichenfolgen in MySQL ab

<p>Ich habe ein Feld <code>COLORS (varchar(50))</code> in meiner Tabelle <code>SHIRTS</code>, das eine durch Kommas getrennte Zeichenfolge wie <code>1,2 enthält ,5,12,15,</code>. Jede Zahl steht für eine verfügbare Farbe. </p> <p>Wenn ich die Abfrage <code>wähle * aus Hemden mit Farben wie „%1%“ ausführe</code> um alle Hemden zu erhalten, die rot sind (Farbe=1), erhalte ich auch die Farbe grau ( = 12) und orangefarbene (=15) Hemden. </p> <p>Wie soll ich die Abfrage so umschreiben, dass sie nur alle Farben mit der Farbe 1 auswählt, anstatt alle Farben, die die Nummer 1 enthalten? </p>
P粉763748806P粉763748806499 Tage vor482

Antworte allen(2)Ich werde antworten

  • P粉036800074

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

    FIND_IN_SET在这种情况下是你的朋友

    select * from shirts where FIND_IN_SET(1,colors)

    Antwort
    0
  • P粉254077747

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

    经典的方法是在左右两边添加逗号:

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

    但是find_in_set也可以使用:

    select * from shirts where find_in_set('1',colors) <> 0

    Antwort
    0
  • StornierenAntwort