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

PostgreSQL查询需求:筛选Field2不匹配Field1字符串的记录

PostgreSQL 查询:筛选Field2与Field1无匹配子串的记录

需求说明

需要从数据表中筛选出Field2包含至少一个不在Field1下划线分割子串中的记录——当Field2的所有空格分割子串都能在Field1的下划线分割子串中找到时,过滤该记录。

查询语句

假设数据表名为your_table,执行以下SQL:

SELECT Field1, Field2
FROM your_table
WHERE NOT (
  SELECT bool_and(elem = ANY(string_to_array(Field1, '_')))
  FROM unnest(string_to_array(Field2, ' ')) AS elem
);

逻辑解释

  1. string_to_array(Field1, '_'):将Field1按下划线分割为字符串数组,例如abc_id_test_scenario会转为['abc', 'id', 'test', 'scenario']
  2. string_to_array(Field2, ' '):将Field2按空格分割为字符串数组,例如cde test会转为['cde', 'test']
  3. unnest(...):将Field2的数组拆分为独立行
  4. bool_and(elem = ANY(...)):检查Field2的每个子串是否都存在于Field1的分割数组中,全匹配则返回true
  5. 外层NOT:排除全匹配的记录,保留存在不匹配子串的记录

示例验证

针对输入数据表执行上述查询,会得到期望输出:

Field1Field2
abc_id_test_scenariocde test

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 01:32:00