mysql 如何在两个不同的列中搜索两个不同的数据串?

qgelzfjb  于 2023-05-05  发布在  Mysql
关注(0)|答案(1)|浏览(142)

现在,我在MySQL中创建了一个表PinDistance,列为PinCode1PinCode2Distance
我有这样的记录。

  • ———————————————————————————————————-
    | PinCode1|密码2|距离|
  • ———————————————————————————————————-
    | 400001 |400002 | 2 |
  • ———————————————————————————————————-
    | 400004 |400001 | 5 |
  • ———————————————————————————————————-
    现在我想传递两个密码,比如'400001'和'400002',我想在查询中响应Distance,这样查询就可以检查这两列并获取数据。
    目前我正在做如下事情
    Select Distance from PinDistance where PinCode1 = '400001' and PinCode2 = '400002'-如果我从这里得到数据,那么我在这里停止,否则我同时传递另一个交换密码值的查询。
    Select Distance from PinDistance where PinCode1 = '400002' and PinCode2 = '400001'
    有没有更好的办法呢???
sqougxex

sqougxex1#

使用运算符IN

SELECT Distance 
FROM PinDistance 
WHERE ('400001', '400002') IN ((PinCode1, PinCode2), (PinCode2, PinCode1));

如果表中可能同时存在('400001 ',' 400002')和('400002 ',' 400001')两种组合,并且您只希望得到1行结果,则可以向查询添加LIMIT 1
参见demo

相关问题