gpt4 book ai didi

sql - 如何使sql搜索查询更强大?

转载 作者:可可西里 更新时间:2023-11-01 06:35:18 28 4
gpt4 key购买 nike

我写了这个 sql 查询来在表中搜索:

SELECT * FROM TableName WHERE Name LIKE '%spa%'

例如,该表包含这些行:

  1. 太空公司。
  2. 温泉度假村。
  3. 温泉酒店。
  4. 备件。
  5. 没有关键字。

我想知道如何编辑这个查询,以便它返回这样排序的结果:

2 Spa resort

3 Spa hotel

1 Space Company

4 Spare Parts

表示首先包含确切词的项目,然后是类似词。

最佳答案

有点像

Select * from TableName where Name Like 'Spa%'
ORDER BY case when soundex(name) = soundex('Spa') then '1' else soundex(name) end

应该可以正常工作。

实际上这样会更好

Select * from TableName where Name Like 'Spa%'
ORDER BY DIFFERENCE(name, 'Spa') desc;

FWIW 我做了一些快速测试,如果“名称”在 NONCLUSTERED INDEX 中,SQL 将使用索引并且不进行表扫描。此外, LIKE 似乎比 charindex (返回不太理想的结果)使用更少的资源。在 sql 2000 上测试。

关于sql - 如何使sql搜索查询更强大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/679998/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com