MySql查询获取包含在vba数组中的id的记录

时间:2015-02-10 11:30:08

标签: mysql vba

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

我希望这个问题不是愚蠢的:我正在努力提高自己。

提前致谢

2 个答案:

答案 0 :(得分:1)

您可以更改代码以包含 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')

答案 1 :(得分:0)

您可以使用:

SELECT * FROM mytable WHERE id IN (1, 2, 3, ...)

其中1,2,3是您感兴趣的ID。