sql >> Databasteknik >  >> RDS >> Mysql

MySQL infoga där inte finns / om inte finns

INSERT satser stöder två syntaxer:en som använder VALUES , och en som använder en fråga. Du kan inte kombinera dem, och endast frågesyntaxen stöder WHERE klausuler. Så:

INSERT INTO `surfed_site` (user, site)
SELECT '123', '456' FROM (SELECT 1) t
WHERE NOT EXISTS (SELECT site FROM `surfed_site` WHERE site=456)
  1. Faktiskt tre syntaxer; du kan också använda SET . Om du bara infogar en post är denna funktionellt likvärdig med VALUES , men utan tvekan mer läsbar.



  1. SQL Server Subquery returnerade mer än 1 värde. Detta är inte tillåtet när underfrågan följer =, !=, <, <=,>,>=

  2. Jämföra metoder för strängdelning/sammansättning

  3. Hur man visar alla lokaler i MariaDB

  4. Undvik dubbla citattecken med variabel inuti HTML-eko