【问题标题】:MYSQL VB.NET I want to know how to show only duplicated RecordsMYSQL VB.NET 我想知道如何只显示重复的记录
【发布时间】:2016-10-21 20:38:06
【问题描述】:

我想只显示重复的行,并删除 GridView 中的所有单行(非重复)

我的代码是:

 Private Sub load_table()
    MysqlConn = New MySqlConnection
    MysqlConn.ConnectionString = "server=localhost;userid=root;password=nassa640088;database=testing"
    Dim SDA As New MySqlDataAdapter
    Dim dbDataSet As New DataTable
    Dim bSource As New BindingSource

    Try
        MysqlConn.Open()
        Dim Query As String
        Query = "select * from testing.login"
        COMMAND = New MySqlCommand(Query, MysqlConn)
        SDA.SelectCommand = COMMAND
        SDA.Fill(dbDataSet)
        bSource.DataSource = dbDataSet
        DataGridView1.DataSource = bSource
        SDA.Update(dbDataSet)



        MysqlConn.Close()
    Catch ex As MySqlException
        MessageBox.Show(ex.Message)
    Finally
        MysqlConn.Dispose()

    End Try

End Sub

【问题讨论】:

  • 在查询中而不是之后执行此操作。看看this
  • 不能从 VB.NET 中做到这一点?
  • 我看不出你为什么要这样做。你正在为自己做更多的工作。如果你这样做了,你将不得不带入一个集合,然后计算出哪些是重复的。下面的答案有供您使用的查询。将select * from testing.login 更改为下面的答案,根据需要更改列名。
  • 如果您之后确实需要这样做,请查看 Linq 和 Group By。看看this 可能会有所帮助。
  • 谢谢你的帮助

标签: mysql vb.net


【解决方案1】:

在这种情况下,使用group by 更改您的查询(假设有一个id 列)

select * from testing.login where id in (
select id 
from testing.login
group by id
having count(id) > 1 );

【讨论】:

  • 我需要从 VB.NET 中完成这项工作
  • 感谢您的帮助
猜你喜欢
  • 2012-07-26
  • 1970-01-01
  • 1970-01-01
  • 2019-04-27
  • 1970-01-01
  • 2015-06-29
  • 1970-01-01
  • 2011-05-25
  • 1970-01-01
相关资源
最近更新 更多