sql >> Databasteknik >  >> RDS >> Mysql

kommaseparerade fält för att jämföra i mysql

Du kan använda FIND_IN_SET :

SELECT seat
FROM sub_table AS t1
WHERE EXISTS (SELECT 1
              FROM main_table AS t2
              WHERE FIND_IN_SET(t1.seat_id, t2.seat_id) <> 0)

Jag skulle dock föreslå att normalisera tabellen main_table , eftersom det alltid är en dålig idé att lagra kommaseparerade värden i ett enda fält som du gör.

Demo här



  1. Använda ett IF-uttalande i en MySQL SELECT-fråga

  2. Postgres/JSON - uppdatera alla arrayelement

  3. Oracle:Finns det något sätt att få nya SQL-syntaxfel?

  4. Är InnoDB-sortering verkligen SÅ långsam?