mysql - 在以下情况下, < 比较与 != 有何不同?
问题描述
我试图在https://dedupeio.github.io/dedupe-examples/docs/mysql_example.html上理解这个例子。在以下情况下, < 比较与 != 有何不同?
read_cur.execute("""
select a.donor_id,
json_object('city', a.city,
'name', a.name,
'zip', a.zip,
'state', a.state,
'address', a.address),
b.donor_id,
json_object('city', b.city,
'name', b.name,
'zip', b.zip,
'state', b.state,
'address', b.address)
from (select DISTINCT l.donor_id as east, r.donor_id as west
from blocking_map as l
INNER JOIN blocking_map as r
using (block_key)
**where l.donor_id < r.donor_id) ids**
INNER JOIN processed_donors a on ids.east=a.donor_id
INNER JOIN processed_donors b on ids.west=b.donor_id
""")
VS
read_cur.execute("""
select a.donor_id,
json_object('city', a.city,
'name', a.name,
'zip', a.zip,
'state', a.state,
'address', a.address),
b.donor_id,
json_object('city', b.city,
'name', b.name,
'zip', b.zip,
'state', b.state,
'address', b.address)
from (select DISTINCT l.donor_id as east, r.donor_id as west
from blocking_map as l
INNER JOIN blocking_map as r
using (block_key)
**where l.donor_id != r.donor_id) ids**
INNER JOIN processed_donors a on ids.east=a.donor_id
INNER JOIN processed_donors b on ids.west=b.donor_id
""")
解决方案
当您使用时,<
您可以放心,每对只会包含一次。
l.donor_id r.donor_id
1 2
3 4
而如果您使用!=
每对将包含两次。
l.donor_id r.donor_id
1 2
2 1
3 4
4 3
推荐阅读
- graphviz - Plantuml 在线和本地渲染差异
- python-3.x - TypeError:参数 1 必须是 pygame.Surface,而不是元组
- linux - 制作一个从日志文件中读取并删除重复消息的 bash 脚本
- nsis - 有什么方法可以使用 NSIS 以通用方式读取注册表版本号键?
- awk - 从制表符分隔的文件中提取列
- reactjs - 我不明白如何渲染对象(反应)
- java - kmllayer 删除功能在 android studio 中不起作用
- php - 如何从 $_SESSION 和 MySQL 用户 ID 验证用户 ID
- javascript - 如何使用 ES6 模块或任何其他非过时技术实现 Html Imports 替换
- wget - 如何使用 Wget 克隆/复制包含您的名称、服务器保留字符的文件到本地存储?