You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询含null的数组行失败:CONTAINS语句返回空结果求助

问题原因及解决方法

原因

SQL里的null表示未知值,任何与null的比较操作(包括CONTAINS函数的匹配)都会返回unknown,而WHERE子句只会筛选出判断结果为true的行,所以你的查询返回空结果。另外,多数数据库的CONTAINS函数设计用于匹配数组中的非null元素,不支持直接匹配null。

解决方法

根据你使用的数据库类型,选择对应的查询语句:

PostgreSQL

  • 直接判断数组是否等于[null]:
    SELECT * FROM table WHERE column1 = ARRAY[null];
    
  • 检查数组中是否存在null元素:
    SELECT * FROM table WHERE array_position(column1, null) IS NOT NULL;
    

MySQL

如果你的column1是JSON类型数组:

  • 使用JSON_CONTAINS匹配null:
    SELECT * FROM table WHERE JSON_CONTAINS(column1, 'null');
    
  • 直接判断数组是否等于[null]:
    SELECT * FROM table WHERE column1 = JSON_ARRAY(null);
    

SQL Server

  • 检查数组中是否存在null元素(若数组以字符串形式存储):
    SELECT * FROM table WHERE EXISTS (SELECT 1 FROM STRING_SPLIT(CAST(column1 AS VARCHAR(MAX)), ',') WHERE value IS NULL);
    

内容的提问来源于stack exchange,提问作者Lucy Gu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 05:02:33