SQLITE的SELECT IN语句的语法是什么?

时间:2017-08-30 06:36:35

标签: sqlite

我有以下在MySQL工作台中正确运行的MySQL语句:

tensorflow/core/util/events_writer.h

我尝试使用与SQLITE相同的语法,但我收到错误消息:

SELECT *, max(invoiceDate) 
AS latestDate 
FROM goodsreceiptrecords 
WHERE (productKey, productIdentifier2) 
IN ((23,'Master'),(28,'Local'),(18,'Local'),(19,'Local')) AND unitPrice > 0 
GROUP BY productKey, productIdentifier1, vendorKey, storeType; 

MySQL中这个SELECT语句的正确语法是什么?基本上,我要做的是选择与表中的2列值相匹配的记录

1 个答案:

答案 0 :(得分:1)

documentation说:

  

对于行值IN运算符,左侧(以下称“LHS”)可以是带括号的值列表,也可以是具有多列的子查询。但右侧(以下称“RHS”)必须是子查询表达式。

但是VALUES子句可以替换子查询,所以只需使用:

...
WHERE (productKey, productIdentifier2) 
   IN (VALUES(23,'Master'),(28,'Local'),(18,'Local'),(19,'Local'))
...