sql >> Databasteknik >  >> RDS >> Mysql

MySQL Möjligt att GÅ MED i en tabell mot en tillhandahållen, statisk lista med data?

Om jag förstår din fråga rätt, avser du att välja posten med den lägsta sort_metrics, och om det finns fler av dessa den med lägsta id. Din dubbla selfjoin orsakas av att du inte vill duplicera den fula in()-listan. Ett annat sätt att åstadkomma detta är med hjälp av en CTE, som bara behöver en självanslutning:

WITH ext AS (
  SELECT id,f_key,name,sort_metric
  FROM tmp.names
  WHERE  f_key IN ( 1, 3, 254, 257, 301, 273, 279 )
  )
SELECT t1.*
  FROM ext t1
  WHERE NOT EXISTS (
    SELECT *
    FROM ext t2
    WHERE t2.sort_metric <= t1.sort_metric
    AND t2.f_key = t1.f_key
    AND t2.id < t1.id
    )
  ORDER BY t1.id
  LIMIT 1
  ;


  1. RMAN Lista backup-kommandon

  2. Ladda om MySQL-data inuti en DIV med Ajax

  3. PHP och mysql infogas inte

  4. Finns det ett automatiskt sätt att generera ett återställningsskript när man infogar data med LINQ2SQL?