代码之家  ›  专栏  ›  技术社区  ›  Cyril Gandon niktrs

比较两个字符串与MySQL

  •  0
  • Cyril Gandon niktrs  · 技术社区  · 14 年前

    SELECT *
    FROM myTable
    ORDER BY abs(zip_code - 75000)
    

    此请求首先返回巴黎最近的数据。

    不幸的是,英国有像AB421RS这样的邮政编码,所以我的请求不能这样做。 http://www.java2s.com/Code/SQLServer/String-Functions/DIFFERENCEworkoutwhenonestringsoundssimilartoanotherstring.htm

    有没有人有一个好主意,在一个简单的要求做这个把戏?

    注:Levenshtein距离不能做到这一点,因为我真的不想比较字符串,如果他们是数字。ABCDEF必须更接近AWXYZ而不是ZBCDEF。

    1 回复  |  直到 13 年前
        1
  •  2
  •   Cyril Gandon niktrs    14 年前

    好吧,我必须停止问问题,然后马上找到答案!!

    select *
    from myTable
    order by abs(ascii(substring(zip_code,1,1)) - ascii(substring('AAAAA',1,1))) asc,
             abs(ascii(substring(zip_code,2,1)) - ascii(substring('AAAAA',2,1))) asc,
             abs(ascii(substring(zip_code,3,1)) - ascii(substring('AAAAA',3,1))) asc,
             abs(ascii(substring(zip_code,4,1)) - ascii(substring('AAAAA',4,1))) asc,
             abs(ascii(substring(zip_code,5,1)) - ascii(substring('AAAAA',5,1))) asc