总是产生相同散列的无序2字符串散列函数

问题描述 投票:0回答:2

[我正在尝试构建一个旅行应用程序,该应用程序可以检查目的地A到B之间的价格,我有一个表,以fromto的形式存储数据,类似]]

CREATE TABLE PRICES {
   from varchar,
   to varchar
   price

事实是,如果from = Ato = B,如果我尝试搜索价格形式B-> A,则没有结果。即SELECT * from prices where from = 'B' AND to = 'A'当然可以通过执行类似SELECT * from prices where from = 'A' And To = 'B' OR from = 'B' and 'To' = 'A'的查询来解决此问题

有没有一种方法可以创建哈希,这样我就不需要执行此OR查询,而是在这种情况下,我将只执行SELECT * from prices where hash = 'C'之类的操作,C将是一个这样的值hash(a, b) = c = hash(b,a),然后我可以将c存储在表中,而无需执行OR查询。

如果有帮助,我正在使用Go btw,但您可以使用任何语言/伪代码提出哈希函数。

谢谢

[我正在尝试构建一个旅行应用程序,以检查目的地A到B之间的价格,我有一个表,用于存储数据的往返日期,例如CREATE TABLE PRICES {...

mongodb algorithm go math hash
2个回答
0
投票

将字符串排序,用定界符连接并返回结果。

func abOrBa(a, b string) string {
    if a > b {
       a, b = b, a
    }
    return fmt.Sprintf("%s\t%s", a, b)
}

-1
投票

分别散列每个结果

© www.soinside.com 2019 - 2024. All rights reserved.