经常在别人写的SQL中看到这个写法,具体什么意思呢? <> 或 <=> 是什么意思呢?怎么使用呢?
postgresql,图象相似度搜索:
SELECT id, smlr
<=> 代表 ifNull( a != b,false) 。如果 a!=b 的结果为null,则最终结果为false,简单理解就是 对 “!=” 做了一个非空判断
注意,条件中"不等于"判断是不能使用索引的.
引用来自“eechen”的评论
!=和<>( 钻石运算符)在SQL中都表示"不等于".注意,条件中"不等于"判断是不能使用索引的.
postgresql,图象相似度搜索:
SELECT id, smlr
FROM (SELECT
id,
pattern <-> (SELECT pattern FROM pat WHERE id = :id) AS smlr
FROM pat
WHERE id <> :id
ORDER BY
signature <-> (SELECT signature FROM pat WHERE id = :id)
LIMIT 100
) x
ORDER BY x.smlr ASC
LIMIT 10
<=> 代表 ifNull( a != b,false) 。如果 a!=b 的结果为null,则最终结果为false,简单理解就是 对 “!=” 做了一个非空判断