2017-08-30 233 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')) 
...