gpt4 book ai didi

sql - 使用sql搜索多个字段的功能

转载 作者:搜寻专家 更新时间:2023-10-30 23:39:03 25 4
gpt4 key购买 nike

我有一个保存用户数据的表。它看起来像这样:

ID Name  Surname Age
1 Alice Moore 23
2 David Moore 45

如果只使用一个字段,比如说 Name,我必须将其用作我的搜索键,那么我可以简单地做这样的事情:

Select * from Users where Name Like '% Al %'
ORDER BY DIFFERENCE(Name , 'Al') desc;

并获取用户 1 的数据。

如果我希望搜索操作也考虑其他字段,比如说 Surname,我不确定如何继续。

order by 如何知道最后要使用哪一列,以便我可以根据相关性返回列表。

最佳答案

首先我想说的是,我不确定在包含大量数据的表格中遵循我的解决方案是否明智。这只是我想出来的,我认为应该适合你的情况。

先试试

您可以按照每行中所有感兴趣的列的最小差异 进行排序。

SELECT FirstName, 
LastName,
(SELECT MIN(v)
FROM (VALUES (DIFFERENCE(FirstName , 'Al')),
(DIFFERENCE(LastName , 'Al'))) AS value(v)) as diff

FROM Users WHERE FirstName LIKE 'Al%' OR FirstName LIKE 'Al%'
ORDER BY diff DESC;

试试交互式 fiddle here .

第二次尝试

另一种选择是按照所有感兴趣行的串联字符串的差异的降序对结果进行排序。

SELECT FirstName, 
LastName
FROM Users
WHERE CONCAT (FirstName, LastName) LIKE 'Al%'
ORDER BY
DIFFERENCE(CONCAT (FirstName, LastName) , 'Al') DESC;

试试交互式 fiddle here .

关于sql - 使用sql搜索多个字段的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37483080/

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