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

SQL动态查询:匹配User表为1字段对应Cidade表type的实现方法

解决方案

你可以通过在关联后的WHERE条件中做动态匹配实现需求,调整后的SQL如下:

SELECT 
    c.estado_id,
    c.version_id,
    c.name,
    c.[type],
    uv.user_id
FROM cidade c
INNER JOIN userst uv 
    ON c.estado_id = uv.estado_id
-- 此处替换为需要查询的任意user_id即可
WHERE uv.user_id = 1
AND (
    (c.[type] = 'shopping' AND uv.shopping = 1)
    OR (c.[type] = 'mercado' AND uv.mercado = 1)
    OR (c.[type] = 'feira' AND uv.feira = 1)
)

逻辑说明

  • 关联逻辑保持原有按estado_id关联两张表的规则不变
  • 新增的条件段会自动匹配cidade表的type值和userst表中对应字段的值:只有用户对应类别字段为1时,才会返回该类别的城市记录
  • 只需修改uv.user_id = ?中的参数值,即可查询任意用户的匹配结果,完全符合动态查询要求
  • 当user_id=1时,返回结果和期望结果完全一致:用户mercado字段为0,所以type为mercado的两条记录会被过滤,仅保留shopping和feira对应的两条记录

如果后续需要新增更多类别,只需在WHERE的OR条件组里新增对应匹配规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:27:00