sql - 选择数组值的 SQL 语句
问题描述
我正在做一个视觉基础项目。我有一个连接到我的项目的 mdb 数据库。我想添加一个SELECT
查询来查找我在程序中给出的数组中的结果
我试图写这样的声明:
SELECT kodu, adi_soyadi, sectigi_ders_say
FROM ogrenciler
WHERE kodu IN ?
但它不起作用。在我的页面代码中,我有一个数组,我想从数组"ogrenciler"
中的表中查找结果"kodu"
。
解决方案
好吧,您可以将该数组发送到 Access 中的临时表,但这会阻止多个用户同时使用该软件。(或者您可以在临时表中添加一些用户名。但是,如果选择的数组很小,比如最多 50 个,那么您可以创建 sql 字符串。
例如:
Dim MySQL As String = "SELECT * from tblHotels WHERE ID IN("
Dim IdList(5) As Integer
Dim i As Integer
For i = 1 To 5
IdList(i) = i
Next
Dim MyList As String = ""
For i = 1 To 5
If MyList <> "" Then MyList = MyList & ","
MyList = MyList & IdList(i)
Next
MySQL = MySQL & MyList & ")"
Using MyCon2 As New OleDbConnection(My.Settings.OLESQL)
Dim da As New OleDbDataAdapter(MySQL, MyCon2)
Dim rstDat As New DataTable()
da.Fill(rstDat)
For i = 0 To rstDat.Rows.Count - 1
Debug.Print(rstDat.Rows(i).Item("HotelName"))
Next ' etc etc. etc.
End Using
因此,您可以使用以下 SQL 格式:
SELECT * FROM tblHotels where ID IN (1,2,3)
从而建立“清单”。这种方法的唯一缺点是 sql 字符串限制为 2000 个字符。因此,如果您的列表大于 50 项左右,那么您必须采用不同的方法。
推荐阅读
- wordpress - Docker 上的 WordPress:挂载数据库卷并导入现有数据库?
- scala - 覆盖类型安全配置记录器以在我的 logback 中使用
- typescript - TypeScript 字符串枚举中的反向映射
- pandas - 通过迭代从划分的列创建新列
- javafx - JavaFX 应用程序无法在 lambda 表达式上编译
- php - Woocommerce 过滤器 add_filter('woocommerce_product_get_price') 不适用于通过 ajax 调用
- c# - 我可以从 Microsoft.VisualStudio.TestTools.UnitTesting.TestContext 或其他方法中获得未处理的异常吗?
- sql - 即使表 B 中不存在记录,如何继续处理它?
- java - 如何将spring数据jpa规范查询中的distinct和sort与join结合起来
- bash - 将 grep 命令 shell 脚本的结果存储到 var