sql - 如果不在列表中则插入到表中

标签 sql mysql

谁能帮我解决语法问题吗?

insert into history (company,partnumber,price) 
 values ('blah','IFS0090','0.00') 
 if company NOT IN ('blah','blah2','blah3','blah4','blah4') 
 and partnumber='IFS0090';

背景:
我有一个历史表,其中存储每日公司、产品和价格。但有时公司会自行撤出几天。使问题变得复杂的是,因为我只保存每日价格变化,而不是对整个日期列表进行快照(数据会很大),当我显示数据时,公司仍会显示前几天的价格。所以我需要做这样的事情,其中​​ 0.00 价格意味着它们不再存在。

最佳答案

用途:

INSERT INTO HISTORY
  (company, partnumber, price)
 SELECT 'blah', 'IFS0090','0.00'
   FROM HISTORY h
  WHERE h.company NOT IN ('blah','blah2','blah3','blah4','blah4') 
    AND h.partnumber = 'IFS0090'

关于sql - 如果不在列表中则插入到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2798596/

相关文章:

php - 在mysql查询ORDER BY中更改时间格式

sql - ORA-00905 : missing keyword (copied from textbook)

sql - 在 SQL 或 MySQL 中不使用 JOIN 关键字的连接是否有问题?

MySql LEFT JOIN 与 COUNT

php - 将 PHP MySQL 查询输出转换为变量

php - 将小时和分钟拆分为 15 分钟的数字

mysql - 高级 SQL 查询从 ID 引用结果中获取值

sql - PostgreSQL 按照 IN 条件传递的顺序获取记录

mysql - 获取MYSQL单表中每个组的最后一条记录,条件是忽略某些组

mysql - 查找日期范围内商店中存储架的可用性