ClickHouse中两个字符串的比较

Posted

技术标签:

【中文标题】ClickHouse中两个字符串的比较【英文标题】:Comparision between two Strings in ClickHouse 【发布时间】:2018-09-12 13:56:12 【问题描述】:

我在数据库my_db 中有一个表my_table,其中有一个名为IpAddrString 列。

以下查询:

select 
    IpAddr, 
    lower(IpAddr), 
    IpAddr = lower(IpAddr) 
from my_db.my_table 
where IpAddr = '10.144.145.159' 
limit 1

产生以下输出:

IpAddr          lower(IpAddr)   equals(IpAddr, lower(IpAddr))
10.144.145.159  10.144.145.159  1

问题是我如何将数字 1 解释为比较的结果?

这是否意味着String 与其对应的lowered 不一样?还是正好相反?

【问题讨论】:

【参考方案1】:

刚刚发现1的意思是true,因为下面的查询:

select 
    IpAddr, 
    name, 
    IpAddr = name 
from my_db.my_table 
where IpAddr = '10.144.145.159' 
limit 1

IpAddr         Name    equals(IpAddr, Name)
10.144.145.159 myName  0

对于已知的false 情况,等号返回0,这是因为10.144.145.159myName 不相等

【讨论】:

以上是关于ClickHouse中两个字符串的比较的主要内容,如果未能解决你的问题,请参考以下文章

ClickHouse中两个字符串的比较

clickhouse索引

比较 ClickHouse 行中的两个数组

“DB::Exception: RangeReader read 7523 rows, but 7550 expected”异常在clickhouse中是啥意思?

Code: 210. DB::NetException: Connection refused (localhost:9000)

在 ClickHouse 中使用原始字符串