Mysql系列---【在字符数组中查询某个字符串是否存在】
mysql中的FIND_IN_SET函数
需求:根据省份id,查询可以在该省份下发信息的通道id
sql语句:
SELECT cpa.CHANNEL_ID id FROM channel_price_batch cpa WHERE ( SELECT FIND_IN_SET( '021', cpa.PROVINCE_ID_LIST ) AS a ) > 0 //若‘021’在一条记录中存在,则a=1;若在多条记录中存在,有几条a就等于几 #GROUP BY cpa.CHANNEL_ID //把查询结果去重,只显示一条 ORDER BY cpa.CREATE_TIME DESC,cpa.ID DESC //按创建时间降序排序,若创建时间一样,就按id降序排序
项目中用的:
<select id="findPageByProvinceId" resultType="java.util.Map">
SELECT
c.ID id,
c.NAME name,
c.SP_ID spId,
c.SERVER_IP serverIp,
c.SERVER_PORT serverPort,
c.PROTOCOL_TYPE protocolType,
c.SERVICE_ID serviceId,
c.PROVINCE_ID provinceId,
c.STATUS status
FROM
channel c
left outer join channel_price_batch cpa on cpa.CHANNEL_ID = c.ID
where (SELECT FIND_IN_SET(#{provinceId}, cpa.PROVINCE_ID_LIST) AS a)>0
GROUP BY c.ID //去重
ORDER BY c.CREATE_TIME DESC,c.ID DESC //按创建时间降序排序,若创建时间一样,就按id降序排序
</select>
查询结果:
愿你走出半生,归来仍是少年!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?