【发布时间】:2017-08-16 07:40:28
【问题描述】:
我在一个数据库中有多个表。我正在所有表格中搜索特定条目。搜索结果正确返回。但是我怎么知道哪个表包含 MySql 中的特定数据/条目?有没有办法在搜索多个表时返回/知道包含特定条目的表名?
Dim statusQuery As String = $"SELECT * FROM management.hostelA,management.hostelB,management.hostelC,management.hostelD where hostelA.occupant1='{stu_name.Text}' or hostelA.occupant2='{stu_name.Text}' or hostelB.occupant1='{stu_name.Text}' or hostelB.occupant2='{stu_name.Text}' or hostelC.occupant1='{stu_name.Text}' or hostelC.occupant2='{stu_name.Text}' or hostelD.occupant1='{stu_name.Text}' or hostelD.occupant2='{stu_name.Text}'"
cmd = New MySqlCommand(statusQuery, con)
Dim sdr As MySqlDataReader
sdr = cmd.ExecuteReader
While sdr.Read
statusflag = statusflag + 1
End While
我想知道哪个表包含 stu_name.text
【问题讨论】:
-
能否请您发布您的 SQL 查询?
-
你是如何执行搜索的?您使用的是工具还是查询?
-
你怎么会不知道你在搜索哪个表?如果只是一堆UNION,则在每个子联合结果中附加一个字符串字段,并带有正在查询的表名。
-
这类问题往往是设计不佳的症状
-
这是一个非常非常非常糟糕的查询。您不是在查询“逗号分隔列表中的表”,而是在查询这些表的笛卡尔积。 (如果这些表中的每一个都有 100 行,那么您正在检查 100000000 个候选结果行;如果文本仅在一个表中,您仍然/“仅”获得 1000000 个最终结果行。) 编辑:哦,我看到比尔已经解决了这个问题……为强调查询问题的数字示例留下评论。