逍遥混世 2021-10-21 12:26 采纳率: 100%
浏览 124
已结题

MYSQL 多重查询多重匹配问题


SELECT 匹配表.匹配后, 当日工单.区县, 当日工单.所属维护网格, 当日工单.实际施工人员单位, 当日工单.id 
FROM `当日工单` LEFT JOIN 匹配表 ON CONCAT(当日工单.实际施工人员单位,当日工单.所属维护网格,当日工单.区县) like concat( '%',匹配表.匹配前, '%')

可以匹配出来 但是比原先的多了 打个比方当日工单.实际施工人员单位匹配为空则进行当日工单.所属维护网格进行匹配
然后再通过 当日工单.区县 进行匹配


```sql

SELECT 匹配表.匹配后, 当日工单.区县, 当日工单.所属维护网格, 当日工单.实际施工人员单位, 当日工单.id ,( 
CASE 
WHEN 匹配表.匹配后 is null
THEN 
(select 当日工单.区县 from 当日工单 where `id` =1 )
ELSE 匹配表.匹配后
END ) 匹配表后

FROM `当日工单` LEFT JOIN 匹配表 ON 当日工单.实际施工人员单位 like concat( '%',匹配表.匹配前, '%') ; 

然后试着这样弄 也不行id =1 的勉强可以 但是 id=1 固定了 写成 id =当日工单.id 不行

如果问题可以解决 悬赏力度可以加大

  • 写回答

4条回答 默认 最新

  • 锟斤拷锟斤拷 2021-10-21 16:43
    关注

    实在不行的话反正也就三个字段,分别查了之后union all好像也行
    SELECT * FROM 匹配表 A,工单表 B WHERE B.单位 LIKE A.匹配前
    UNION ALL
    SELECT * FROM 匹配表 A,工单表 B WHERE B.单位 NOT LIKE A.匹配前 AND B.网格 LIKE A.匹配前
    UNION ALL
    SELECT * FROM 匹配表 A,工单表 B WHERE B.单位 NOT LIKE A.匹配前 AND B.网格 NOT LIKE A.匹配前 AND B.区县 LIKE A.匹配前

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 10月30日
  • 已采纳回答 10月22日
  • 赞助了问题酬金 10月21日
  • 创建了问题 10月21日

悬赏问题

  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿