必须用字段拼接构造复合条件实现泛搜,创建product_catalog表并设为多用户模式;SQL用name||' '||category LIKE '%{{start.user_input}}%'拼接匹配;输出为空时提示未找到,非空则经大模型格式化为【名称】-【价格】元。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在扣子中实现用户输入关键词后自动匹配数据库里多条记录并返回结构化结果,必须绕过模糊查询的天然限制,用字段拼接构造可检索的复合条件。
准备数据表与启用多用户模式
进入Coze Studio → 工作空间 → 资源库 → 点击右上角“+资源” → 选择“数据库” → 命名表为product_catalog,描述填“商品信息主表”。
添加四个字段:【id】(类型:文本,勾选“主键”)、【name】(文本)、【category】(文本)、【price】(数字)。主键不可为空,否则后续所有更新删除操作都会失败。
在表设置页底部,将“数据访问模式”切换为【多用户模式】。单用户模式下,用户只能查自己提交的数据,无法支撑公共商品库这类共享场景。
构建动态查询逻辑:用SQL自定义节点拼接条件
方法一:用||运算符合并字段实现泛搜
添加“SQL自定义”节点 → 选择product_catalog表 → 在SQL框中输入:
SELECT * FROM product_catalog WHERE name || ' ' || category LIKE '%{{start.user_input}}%'
这句SQL把商品名和分类字段用空格拼在一起,再做LIKE模糊匹配。比如用户搜“手机”,能同时命中name=“iPhone 15”、category=“数码”的记录,也能命中name=“华为Mate”、category=“手机”的记录。不拼接的话,单独查name或category会漏掉跨字段关联的结果。
方法二:用OR逻辑分字段独立匹配
在同一个SQL自定义节点中,改写为:
SELECT * FROM product_catalog WHERE name LIKE '%{{start.user_input}}%' OR category LIKE '%{{start.user_input}}%'
这种写法更直观,但当用户输入空格或特殊符号时容易报错;而方法一用拼接规避了多条件嵌套,稳定性更高。
配置查询输出与错误兜底
第一步:在SQL自定义节点的“输出配置”中,勾选“返回查询结果” → 将outputList映射到下游节点。
第二步:添加“判断”节点 → 设置条件为“outputList长度等于0” → 若为真,连接“发送消息”节点,内容填“没找到包含‘{{start.user_input}}’的商品,请换关键词试试”。
第三步:若outputList非空,连接“大模型”节点 → 输入提示词:“你是一个电商客服助手。请将以下商品列表整理成简洁清晰的回复,每行一条,格式为【名称】-【价格】元,不要额外解释:{{sql_custom.outputList}}”。
注意:SQL自定义节点不支持直接渲染数组字段,必须经大模型格式化后再发给用户,否则会输出JSON乱码。


















