내가 MySQL을 잘 알고 아니지만, MSSQL을 다룰 때 내가 테이블로 연결된 정수 값을 분할 사용할 수 있도록, 나는 일반적으로 VB 측에서, DB에서 분할 기능을 가지고, 뭔가 같은 :
Dim myIds = {1, 2, 3, 4}
Dim sql = <sql>
SELECT m.* FROM dbo.tblMyData m
INNER JOIN dbo.fncSplitIntegerValues(@Ids, ',') t ON t.id = m.Id
</sql>.Value
Using con As New SqlConnection("My connection string..."),
cmd As New SqlCommand(sql, con)
cmd.Parameters.Add("@Ids", SqlDbType.VarChar).Value =
myIds.Select(Function(m) m.ToString).Aggregate(Function(m, n) m & "," & n)
con.Open()
Dim rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
While rdr.Read()
Console.WriteLine(rdr.GetValue(0))
' do something else...
End While
End Using
dbo.fncSplitIntegerValues는 연결된 정수 varchar를 주어진 구분 기호로 정수 ID로 분할하는 db 함수입니다.
일반 SQL 대신 SQL 매개 변수를 사용하는 것이 중요합니다.
참고 : 샘플은 테스트되지 않는 이상 당신은 변수 (하지 저장 프로 시저)에서 쿼리가 있고 ID의 거대한 양의가없는 경우 ...
출처
2013-08-27 07:59:19
Rex
배열 문자열 (2, 3, 4, 5)에서 생성 UPDATE ... WHERE ID IN {cond} 문자열을 바꾸려면 {cond} 배열 – realnumber3012
에서 문자열을 가져옵니다. 먼저 정수 배열을 문자열로 변환해야합니다. 당신이 의미하는 바는 무엇입니까? – Law
예. MySQL은 배열 매개 변수와 테이블 매개 변수를 지원하지 않습니다. – realnumber3012