【发布时间】:2020-12-07 00:38:55
【问题描述】:
我需要在 WHERE 子句中使用 IN 运算符,所以我用我的 SQL 语句尝试了下一个代码,但它只给了我第一个数字的记录:
MyVar_AccID= "110,112,113"
Dim MyVar_SqlStr_Main As String = "SELECT
FatoraID,
FatoraRef,
FatoraCode,
FatoraDate,
(D.AccName) AS DName,
FatoraQuan,
CONCAT(CategoryName,' ',ProductName) AS ProdName,
FatoraSalePrice,
(C.AccName) AS CusName,
FatoraPurPrice,
(R.AccName) AS ResoName,
FatoraPalletQuan,
FatoraPalletPrice,
FatoraPurTotal,
FatoraCustomer,
FatoraDis,
FatoraPlus,
FatoraSaleTotal,
FatoraDriver,
FatoraCarNo,
FatoraDriverCost,
FatoraDriverCostTotal1,
FatoraDriverCostTotal2,
FatoraDriverPrice,
FatoraDriverPayStatus,
FatoraReso,
FatoraProduct,
FatoraDetails1,
FatoraDetails2,
FatoraDetails3,
(FatoraPalletQuan * FatoraPalletPrice) AS PalletTotalPrice
FROM tblfatora F
INNER JOIN tblproducts P ON
P.ProductID = F.FatoraProduct
INNER JOIN tblaccounts R ON
R.AccID = F.FatoraReso
INNER JOIN tblaccounts C ON
C.AccID = F.FatoraCustomer
LEFT JOIN tblaccounts D ON
D.AccID = F.FatoraDriver
INNER JOIN tblcategories CT ON
CT.CategoryID = P.ProductCategory
Where
(FatoraReso IN (@FatoraReso))
ORDER BY FatoraDate DESC"
xCmd = New MySqlCommand(MyVar_SqlStr_Main, Conn)
xCmd.Parameters.Add("@FatoraReso", MySqlDbType.VarChar).Value = MyVar_AccID
我也试过了:
Where
(FatoraReso IN ("@FatoraReso"))
但没有给我结果,我该如何解决这个问题,请注意我不知道代码的数量,所以可能是 (1,2,3,4,5) 或更少或更多。
【问题讨论】:
-
问题是参数化的“IN”子句不能接受多个值。这是一种解决方法:Parameterized IN clauses with ADO.NET and LINQ
标签: mysql sql string vb.net where-clause