首页 > 解决方案 > MySQL 使用 VB.net 中的列表选择带有条件的查询

问题描述

我有一个名为“table1”的 mysql 表,其中包含 3 个名为“column1”、“column2”和“column3”的列,我有一个名为“list1”的列表。我想选择 list1 包含 column2 的单元格值的所有行。我尝试了几种方法来制作查询字符串,但我失败了。请帮忙。我试过

Dim mysqlconn = New MySqlConnection
    mysqlconn.ConnectionString = "server=localhost;user id=root;password=1234;database=Share"
    mysqlconn.Open()
    Dim adapter As New MySqlDataAdapter("SELECT * FROM table1 WHERE " & list1.Contains & "('" & column2 & "');", mysqlconn)
    Dim datatable As New DataTable()
    adapter.Fill(datatable)
    Dim cmd As New MySqlCommand
    cmd.Connection = mysqlconn

标签: vb.net

解决方案


你几乎做了,但没有完全做的是使用MySQL IN查看一个值是否在列表中。

如果 column2 是数字,

SELECT * FROM table1 WHERE column2 in (1,2,3);
"SELECT * FROM table1 WHERE column2 in (" & String.Concat(",", list1) & ");"

如果 column2 是文本,

SELECT * FROM table1 WHERE column2 in ('1','2','3');
"SELECT * FROM table1 WHERE column2 in (" & String.Concat(",", list1.Select(Function(i) $"'{i}'").ToArray()) & ");"

推荐阅读