sql >> Database teknologi >  >> RDS >> Mysql

MySQL:Indsæt ikke en ny række, hvis de definerede rækker er de samme

De tidligere værdier vil ikke være den samme, fordi tiden er anderledes. Ak.

Du kan gøre dette ved at bruge insert . . . select syntaks. Ideen er at vælge den sidst indsatte række og bruge en where klausul for at filtrere rækkerne. Filteret returnerer ingen rækker (og dermed ingen indsættelse), når værdierne er de samme:

insert into AeroSamples(temperature, pressure, humidity) 
    select :t, :p, :h
    from (select temperature, pressure, humidity
          from AeroSamples
          order by id desc
          limit 1
         ) as1
    where as1.temperature <> :t or as1.pressure <> :p or as1.humidity <> :h;


  1. E-mail-parsing og -behandlingsarkitektur

  2. Sådan rundes (OP/NED) i SQL Server – 5 nyttige tips

  3. Hent værdier fra databasen ved hjælp af PHP PDO og opdater input til kontrolleret

  4. Output mellem to datoer mysql