我用下面的代码编写一个MySql查询,以获取ID包含在数组中的记录。
它有效,但是有更好的方法吗? (而不是多个“ OR”)
myArr = Cells(1, 1).CurrentRegion.Value
SqlStr = "SELECT * FROM mytable WHERE id ='"
For i = 1 To UBound(myArr)
SqlStr = SqlStr & myArr(i, 1) & "' OR id ='"
Next i
SqlStr = Left(SqlStr, Len(SqlStr) - 7)
我希望这个问题不是愚蠢的:我正在努力提高自己。
提前致谢
最佳答案
您可以更改代码以包含IN运算符,它仍会循环,但没有多个OR
Dim inVar As String
myArr = Cells(1, 1).CurrentRegion.Value
SqlStr = "SELECT * FROM mytable WHERE id IN ("
For i = 1 To UBound(myArr)
inVar = inVar & ",'" & myArr(i, 1) & "'"
Next i
SqlStr = SqlStr & Right(inVar, Len(inVar) - 2) & ")"
顺序就像
SELECT * FROM myTable WHERE id IN ('1', '2')
关于mysql - MySQL查询以获取ID包含在VBA数组中的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28430558/