如何使用SQL查找给定字符串的最接近字符串

时间:2014-07-01 06:59:50

标签: mysql sql closest

让我明白我的问题。 我在数据库中有一些类似下面的模式字符串,

0070m6nkfszczw8zzgswgzz8wzgz0

0070m6nkfszczw8zzgswgzz8wzgz3

0070m6nkfszczw8zzgswgzz8wzgza

0070m6nkfszczw8zzgswgzz8wzgzb

0070m6nkfszczw8zzgswgzz8wzgzc

0070m6nkfszczw8zzgswgzz8wzgzd

0070m6nkfszczw8zzgswgzz8wzgzf

0070m6nkfszczw8zzgswgzz8wzgzg

输入字符串:

0070m6nkfszczw8zzgswgzz8wzgze 

它不在数据库中,但我只想在将其插入数据库后找到近记录 问题是 : 我可以在数据库中存储订单的字符串吗? 我怎样才能得到最接近的? for:0070m6nkfszczw8zzgswgzz8wzgze

前一个是: 0070m6nkfszczw8zzgswgzz8wzgzd

接下来是: 0070m6nkfszczw8zzgswgzz8wzgzf

谢谢

1 个答案:

答案 0 :(得分:1)

所以你在按字母顺序思考。然后得到最大值,该值小于或等于你的值,最小值大于或等于你的值。

select min(string)
from mytable
where string >= @mystring
union
select max(string)
from mytable
where string <= @mystring;

这将找到您要查找的值。如果它不存在,它会给你邻居,如果有的话。 (如果您不想获得完全匹配,请将<=更改为<,将>=更改为>,将union更改为union all 。)