我有一个名为items.productname的嵌套字段,我想在其中检查产品名称是否包含特定字符串。
SELECT * FROM test WHERE hasAny(items.productName,['Samsung'])
这只适用于产品名称为三星的情况。
我试过数组连接
SELECT
*
FROM test
ARRAY JOIN items
WHERE items.productName LIKE '%Samsung%'
这是可行的,但速度非常慢(500万条记录只需1秒钟)
有没有办法像哈萨尼那样表演?
1条答案
按热度按时间dz6r00yl1#
您可以使用arrayfilter函数来实现这一点。clickhouse文档
查询
如果不使用!=[]然后您将得到一个错误“db::exception:非法类型数组(string)of column for filter。必须是uint8或nullable(uint8)或它们的const变体。“