我有这些代码行,我试图查看我的数据库中的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
。
谢谢!
答案 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 & "')"