我有3个字段:LastName,MRnumber和SSN。所有3个都是患者记录的一部分。现在用户可以搜索1,2或全部3个关键字。 MR号码或SSN是唯一的,每个号码将检索一个唯一的记录。但是这些值并不总是存在。例如,病人不想给他的SSN。请记住,会有很多记录,这是做到这一点的最佳方式?我使用MS Access和Delphi作为前台(如果有问题)。SQL中的多关键字搜索
回答
在解释你的问题如下:
每个记录有
姓氏,不是唯一的,始终存在
MRNumber,独特的,可选
SSN,独特的,可选
你搜索一下( (姓氏和SSN)或(姓和MRNumber和SSN)
但是由于MRNumber和SSN都是唯一的最后一个搜索ch是多余的。
你不告诉使用你正在使用什么组件,所以只有通用答案是可能的。 假设你的Delphi应用程序做一些预处理,我会做:
If MRNumber given
search on (LastName and MRNumber)
else
If SSN given
search on (LastName and SSN)
else
message(Insufficient data)
好,所以你会检查每个单独的字段..我想可能有一个更简单的SQL语句。我回到了3种可能的方式: A)3个输入字段,每个字段都有自己的搜索按钮。 B)组合框,称为搜索,并让用户选择:C)3个输入字段,我将对搜索进行分级。 谢谢我想我会使用组合框..它可能是更优雅的方式,更简单的代码。 Thnx再次。 – Sardukar
但我仍然好奇:说你有以下搜索选项:名字,年龄和性别作为单独的txt字段和单个搜索按钮..你会如何构建查询?用户可以使用所有的搜索字段来检索单个记录或使用组合来检索多个记录?换句话说,您使用的搜索词越多,搜索时就越具体。 – Sardukar
如果它变得非常复杂,我会在代码中构建SQL语句:SELECT ... FROM ... WHERE,然后根据用户选择/填充的内容添加条件。然后将语句放入查询组件并执行。 –
- 1. 多关键字搜索
- 2. 多个关键字搜索
- 3. Linq多关键字搜索
- 4. SSRS多关键字搜索
- 5. SQL Server中多个表的所有列的关键字搜索
- 6. 在多列中搜索关键字
- 7. MySQL和多关键字多行搜索
- 8. 关键字搜索
- 9. 关键字搜索
- 10. 关键字搜索
- 11. 搜索关键字
- 12. 跨多列的mysql关键字搜索
- 13. 搜索多个关键字的文本
- 14. 在Shiny中搜索DataTables中的“智能”搜索(搜索多个关键字)
- 15. 使用SQL Server关键字搜索
- 16. 使用sql进行关键字搜索
- 17. 部分关键字搜索(MS SQL 2005)
- 18. SQL查询 - 多个关键字搜索多列
- 19. 通过mysql查询搜索关键字的搜索关键字来计算搜索关键字
- 20. 搜索SP的关键字
- 21. 使用多个关键字搜索
- 22. SELECT2多个搜索关键字
- 23. 插入并搜索多个关键字
- 24. xpath搜索多个关键字
- 25. PHP MySqli多个关键字搜索
- 26. 搜索,通过使许多关键字
- 27. 多个条件关键字搜索
- 28. Java通过多个关键字搜索
- 29. MySQL和PHP:多关键字搜索
- 30. LINQ多个关键字搜索PagedList
谢谢你的edit..it是凌晨1点..即时通讯累。 – Sardukar
目前尚不清楚以下内容应包含哪些行为:*'MRnumber或SSN是唯一的,它们每个都将检索一条独特的记录。但是,这些值并不总是存在的。'*例如,如果用户在搜索字段中同时输入了MRNumber和SSN,你会在你的查询中使用'and'ed或'or'ed吗?您能否添加示例,说明数据库中的各种数据组合以及输入的搜索词,然后显示每种情况下的结果?最后但并非最不重要的:** [你有什么尝试?](http://whathaveyoutried.com)** –