VB.NET格式的Mysql Soundex

时间:2015-02-05 19:50:05

标签: mysql vb.net soundex

我有这些代码行,我试图查看我的数据库中的soundex结果,但显然它没有返回任何结果。

con.Open()

    Try
        Dim query As String
        query = "SELECT * FROM table_name WHERE column_name LIKE CONCAT('" & "%" & "',SOUNDEX('" & input & "'),'" & "%" & "')"
        cmd = New MySqlCommand(query, con)
        adapter.SelectCommand = cmd
        reader = cmd.ExecuteReader
        Dim list As New ListViewItem
        While reader.Read()
            list = ListView1.Items.Add(dr(1).ToString())
            list.SubItems.Add(dr(2).ToString())
        End While
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

    con.Close()

它甚至不会在MessageBox上抛出异常。

为了确保在我执行上述查询之前从我的数据库返回了数据,我做了select * from table_name

谢谢!

1 个答案:

答案 0 :(得分:1)

我通过说我对MySQL并不熟悉,但是Soundex算法通常返回一个"代码"类似的发声词也是如此。 e.g。

SOUNDEX('Smith') = 'S530'
SOUNDEX('Smythe') = 'S530'

因此,为了找到column_name值听起来像input值的记录,你会想要这样的事情(注意关于SQL注入问题的警告和不要注意使用字符串连接如下所示!):

query = "SELECT * FROM table_name WHERE SOUNDEX(column_name) = SOUNDEX('" & input & "')"