gpt4 book ai didi

mysql - 如何忽略某些查询并执行其余查询?

转载 作者:行者123 更新时间:2023-11-29 15:44:42 25 4
gpt4 key购买 nike

我有 5 个数据库,其中一些结构相同,有些则不同,例如 tbl_employee_debitcredit 该表不在其他数据库中,我想忽略不在数据库中的查询表并让其他查询执行。那可能吗?如果是的话怎么办?引用就够了。谢谢

已编辑:这是 for 循环和查询,如果缺少 1 个表,它将停止整个查询并继续到另一个数据库

Dim y As Integer = 0
For x = 0 To Form1.UcAddClient1.lv_acc.Items.Count + 1
Dim a As Integer = 0

Dim constr As String = "Server=" & Form1.UcAddClient1.lv_acc.Items(x).SubItems(y + 3).Text & "Database=" & Form1.UcAddClient1.lv_acc.Items(x).SubItems(y + 4).Text & ";User id=" & Form1.UcAddClient1.lv_acc.Items(x).SubItems(y + 5).Text & ";password=" & Form1.UcAddClient1.lv_acc.Items(x).SubItems(y + 6).Text & ";Convert Zero Datetime=True;"
'MessageBox.Show(constr)

Dim conn As New MySqlConnection(constr)

Try
If conn.State = ConnectionState.Closed Then
conn.Open()
End If

Dim sqlcmd1 As New MySqlCommand("Select * from " &
"(SELECT count(id) as Dept from departments where is_deleted = 0) as Dept, " &
"(SELECT count(payroll_group_id) as pg from payroll_groups where is_deleted = 0) as pg , " &
"(SELECT count(payroll_group_rate_id) as pgr from payroll_group_rates) as pgr, " &
"(SELECT count(id) as leaves from leaves where is_deleted = 0) as leaves, " &
"(SELECT count(id) as deminimis from de_minimis_benefits where is_deleted = 0 )as deminimis, " &
"(SELECT employee_id from tbl_employee_debitcredit where is_deleted = 0 like '%1') and is_deleted = 0) as noODC ", conn)

Dim dr1 As MySqlDataReader

dr1 = sqlcmd1.ExecuteReader

If dr1.HasRows Then
While dr1.Read
Dim newitem As New ListViewItem()

newitem.Text = Form1.UcAddClient1.lv_acc.Items(x).SubItems(y + 1).Text.ToString
newitem.SubItems.Add(Form1.UcAddClient1.lv_acc.Items(x).SubItems(y + 2).Text.ToString)
newitem.SubItems.Add(dr1.Item("Dept").ToString)
newitem.SubItems.Add(dr1.Item("pg").ToString)
newitem.SubItems.Add(dr1.Item("pgr").ToString)
newitem.SubItems.Add(dr1.Item("leaves").ToString)
newitem.SubItems.Add(dr1.Item("deminimis").ToString)
newitem.SubItems.Add(dr1.Item("noODC").ToString)
lv_client_tracker.Items.Add(newitem)

End While

dr1.Close()

End If

Catch ex As Exception
MessageBox.Show(ex.Message)

End Try

End If

Next

最佳答案

您需要查明该表是否存在于相应的环境中。我不知道mysql中的确切语法,但应该不难找到,我只是创建了一个空函数来模拟它。然后附加相应的查询,要么是真实的查询,要么是虚拟的查询,返回 0(或 -1 或您喜欢的任何内容)。

Private Sub Foo()
Dim myExistsDepartments As Boolean = TableExists("departments", conn)
Dim myExistsPayrollGroups As Boolean = TableExists("payroll_groups", conn)
Dim myExistsPayrollGroupRates As Boolean = TableExists("payroll_group_rates", conn)
Dim myExistsLeaves As Boolean = TableExists("leaves", conn)
Dim myExistsDeMinimisBenefits As Boolean = TableExists("de_minimis_benefits", conn)
Dim myExistsTblEmployeeDebitCredit As Boolean = TableExists("tbl_employee_debitcredit", conn)

Dim myCommand As New StringBuilder("SELECT * FROM ")
If (myExistsDepartments) Then
myCommand.Append("(SELECT COUNT(id) FROM departments WHERE is_deleted = 0) AS Dept, ")
Else
myCommand.Append("0 AS Dept, ")
End If
If (myExistsPayrollGroups) Then
myCommand.Append("(SELECT COUNT(payroll_group_id) FROM payroll_groups WHERE is_deleted = 0) AS pg, ")
Else
myCommand.Append("0 AS pg, ")
End If
If (myExistsPayrollGroupRates) Then
myCommand.Append("(SELECT COUNT(payroll_group_rate_id) FROM payroll_group_rates) AS pgr, ")
Else
myCommand.Append("0 AS pgr, ")
End If
If (myExistsLeaves) Then
myCommand.Append("(SELECT count(id) FROM leaves WHERE is_deleted = 0) AS leaves, ")
Else
myCommand.Append("0 AS leaves, ")
End If
If (myExistsDeMinimisBenefits) Then
myCommand.Append("(SELECT count(id) FROM de_minimis_benefits WHERE is_deleted = 0) AS deminimis, ")
Else
myCommand.Append("0 AS deminimis, ")
End If
If (myExistsTblEmployeeDebitCredit) Then
myCommand.Append("(SELECT employee_id FROM tbl_employee_debitcredit where is_deleted = 0) AS noODC ")
'Or however this query should read correctly...
Else
myCommand.Append("0 AS noODC ")
End If
Dim sqlcmd1 As New MySqlCommand(myCommand.ToString(), conn)


End Sub

Private Function TableExists(tableName As String, conn As MySqlConnection) As Boolean
'Put code here...
Return True
End Function

关于mysql - 如何忽略某些查询并执行其余查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57195628/

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