2017-08-30 230 views
0

我有一个在MySQL工作台正确运行下面的MySQL语句:SQLITE的SELECT IN语句的语法是什么?

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; 

我尝试使用相同的语法SQLite的,但我得到的错误messase:

sqlite3_prepare_v2 failure: row value misused 

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

回答

0

documentation说比赛:

一个行值IN操作符,左手侧(以下简称“LHS”)可以是值为括号的列表或具有多列的子查询。但右侧(以下简称“RHS”)必须是子查询表达式。

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

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