【问题标题】:Sql Query in multiple column多列中的 Sql 查询
【发布时间】:2015-07-15 05:52:01
【问题描述】:

我有一个名为律师的表格,其中包含以下列:

ID  |   Practice Area  |   City  |   State

现在如果用户想像这样进行搜索人身伤害 new jercy alabama

ID   |   Practice Area   |   City       |   State
Id   |   personal injury |   new jercy  |   alabama

我们如何编写返回此结果集的 SQL 查询?

问候

【问题讨论】:

  • 所有A,B,C都将在练习区栏目中??发布您想要的正确输入和输出
  • 提供样本数据和所需的输出
  • 假设如果我们输入“Personal injury, Daphne, AL”,那么它应该记录所有练习区域 = 人身伤害、状态为 daphne 且状态为 AL 的记录。并且会有原始字符串,应该在练习区、城市和州列中搜索。
  • 当您说原始字符串时,您的意思是它也应该适用于“阿拉巴马州受伤”或“洛杉矶人身伤害”或其他不完全相同格式的内容?

标签: sql-server


【解决方案1】:

您正在寻找这样的东西吗?

SELECT ID, [Practice Area], City, State FROM Attorney
WHERE @Parameter Like '%' + [Practice Area] + '%' OR 
@Parameter Like '%' + City + '%' OR @Parameter Like '%' + State + '%'

@Parameter 将是您的文本,即在您的情况下为“personal injury new jersey alabama”

【讨论】:

  • 城市可以先来,然后练习区和州。所以这些列在搜索中的顺序可以非常好。
【解决方案2】:

如果您想准确搜索用户输入的内容,我们可以通过以下代码来实现:

SELECT * FROM YourTable WHERE [PracticeArea]+ ' ' + [City] + ' ' + [State] = @Parameter

按“%”搜索顺序

SELECT * FROM YourTable WHERE [PracticeArea]+ ' ' + [City] + ' ' + [State] LIKE '%'+@Parameter+'%'

【讨论】:

  • 城市可以先来,然后练习区和州。所以这些列在搜索中的顺序可以非常好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多