我是 VB.NET 编程的新手,但我必须在我的程序中做一个研究栏。实际上,搜索栏正在寻找名字或姓氏(如果名字或姓氏有空间它正在工作)但如果我想同时搜索两者,我该如何构建我的 sql 查询?我不知道用户是否会将名字放在首位或姓氏放在首位。我尝试过的是在有空格的情况下拆分姓名,但如果此人的名字像“Robert Downey Junior”,我怎么知道空格的哪一部分是名字或姓氏?
所以,
- 如何为此任务构建我的 sql 查询?
- 我怎么知道空间的哪一部分是名字或姓氏?
实际正则表达式
' value of query = "% + search bar + %" for sql LIKE parameter
Regex.IsMatch(query, "^'%(\w+ \w+)+%'$")
我如何检测名字和姓氏
Dim name As String = query.ToString.Substring(2, query.Length - 4)
Dim nameParts As String() = name.Split(" ")
'So nameParts(0) = "robert", nameParts(1) = "downey" and namePart(2) = "junior"
实际的 sql 选择器
SELECT id, firstName, lastName
FROM beneficiaire
WHERE LOWER(lastName) LIKE '%robert downey junior%'
OR LOWER(firstName) LIKE '%robert downey junior%'