-1

我有这些代码行,我试图查看我的数据库以获取 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

谢谢!

4

1 回答 1

1

我先说我对 MySQL 一点也不熟悉,但 Soundex 算法通常会返回一个“代码”,这对于类似的发音词来说是相同的。例如

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

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

query = "SELECT * FROM table_name WHERE SOUNDEX(column_name) = SOUNDEX('" & input & "')"
于 2015-02-05T21:15:40.583 回答