gpt4 book ai didi

mysql - 在MYSQL的tinyint字段中选择使用-1

转载 作者:行者123 更新时间:2023-11-29 13:51:02 25 4
gpt4 key购买 nike

我编写了以下代码来过滤想要通过帖子或电子邮件获得时事通讯的人:

Sub loadoverviewnewsletter()
Dim sql As String
Dim sql1 As String
If newslettermail = True Then
sql = "SELECT * FROM Donateurs WHERE 'Newsletter per e-mail' =-1"
sql1 = "SELECT * FROM Donateurs WHERE 'Newsletter per e-mail' =-1"
ElseIf newsletterpost = True Then
sql = "SELECT * FROM Donateurs WHERE 'Newsletter per post' =-1"
sql1 = "SELECT * FROM Donateurs WHERE 'Newsletter per post' =-1"
ElseIf newsletternew = True Then
sql = "SELECT * FROM Donateurs WHERE 'Newsletter per post' =0 AND 'Nieuwsbrief per e-mail' =0"
sql1 = "SELECT * FROM Donateurs WHERE 'Newsletter per post' =0 AND 'Nieuwsbrief per e-mail' =0"
Else
sql = "SELECT * FROM Donateurs"
sql1 = "SELECT * FROM Donateurs"
End If

Dim adapter As New MySqlClient.MySqlDataAdapter(sql, modConnectorHandler.ServerString)
Dim dt As New DataTable("newsletteroverview")
adapter.Fill(dt)
ShowDonateurs.datagrid.DataSource = dt

ShowDonateurs.ShowDialog()
Dim adapter1 As New MySqlClient.MySqlDataAdapter(sql1, modConnectorHandler.ServerString)
Dim cmd1 As New MySqlClient.MySqlCommand(sql1, modConnectorHandler.mysqlconnection)
modConnectorHandler.mysqlconnection.Open()
Dim myreader As MySqlClient.MySqlDataReader = cmd1.ExecuteReader
myreader.Read()
modConnectorHandler.mysqlconnection.Close()
OverviewNewsLetter.Close()

不幸的是,它返回一个空的数据网格,而当我选择 newsletternew 选项时,它会显示完整的表格。 “每个电子邮件的新闻通讯”和“每个帖子的新闻通讯”字段是 tinyint 字段,其值可以是 -1(表示在应用程序中选中)和 0(表示未选中)。

我真的不明白为什么它不起作用。我希望任何人都可以提供帮助。

最佳答案

您需要对列名称使用反引号而不是单引号。考虑这个 WHERE 条件:

WHERE 'Newsletter per e-mail' =-1

它将字符串常量每封电子邮件的新闻通讯-1进行比较。比较的结果始终为false。试试这个:

WHERE `Newsletter per e-mail` = -1

现在它指的是列名而不是字符串常量。

最后,尽可能避免需要反引号的列名(几乎总是如此)。正如您所看到的,它们往往会带来麻烦。

关于mysql - 在MYSQL的tinyint字段中选择使用-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16652249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com