【问题标题】:What is the syntax for SELECT IN statement for SQLITE?SQLITE 的 SELECT IN 语句的语法是什么?
【发布时间】:2017-08-30 06:36:34
【问题描述】:

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

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 使用相同的语法,但收到以下错误消息:

sqlite3_prepare_v2 failure: row value misused

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

【问题讨论】:

    标签: sqlite


    【解决方案1】:

    documentation 说:

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      相关资源
      最近更新 更多