我用下面的代码编写一个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/

10-15 02:24