Heim  >  Fragen und Antworten  >  Hauptteil

MySQL: Suchen Sie nach Spalten, die mit Ganzzahlen in einer Textspalte (CSV) übereinstimmen

Diese Tabelle verfügt über eine Textspalte, die Verweise auf andere Datensätze im CSV-Format speichert, zum Beispiel:

+----+----------------+
| id | linked_folders |
+----+----------------+
| 90 |    NULL        |
| 91 |    NULL        |
| 92 |    123,1,4,40  |
| 93 |    123,1       |
| 94 |    NULL        |
| 95 |    235,8       |
| 96 |    90          |
| 97 |    NULL        |
| 98 |    NULL        |
| 99 |    NULL        |
+----+----------------+

$id = 90;
SELECT * FROM my_table WHERE id = $id OR $id is in linked_folders

Die obige Pseudoabfrage sollte die Zeilen 90 und 96 zurückgeben.

Ich möchte einen Abgleich durchführen, wenn ein bestimmter, exakter Wert, den ich habe, in diesem Feld enthalten ist.

Ich denke, dass die Verwendung von LIKE möglicherweise nicht funktioniert, weil ich nicht weiß, ob das Komma davor oder danach existiert.

Habe ich Alternativen?

P粉336536706P粉336536706180 Tage vor315

Antworte allen(1)Ich werde antworten

  • P粉885035114

    P粉8850351142024-04-05 14:04:01

    可以使用FIND_IN_SET来实现:

    select * 
    from my_table 
    where id = 90 or FIND_IN_SET(90, linked_folders) > 0

    这里有演示

    Antwort
    0
  • StornierenAntwort