记一次平台升级兼容SQL server和MySQL开发解决方案。
某程序功能执行这样一个sql获取数据,原SQL server语句:
SELECT *
FROM BidFile AS A
INNER JOIN dbo.fun_获取指定流程的合格单位(3, '9') AS B ON A.BidFileId = B.BidFileId
该sql语句为简单截取关键一段,在这局sql中select一张表,该表关联join了一个表值函数, 具体是什么不重要,只需要知道表值函数的作用就是返回一个列表集合用于外层sql的关联查询。
然而,在兼容运行在MySQL平台运行环境时,MySQL中没有表值函数,经过个人研究了一会,可以通过使用存储过程去实现获取到等同与SQL server中表值函数生成的列表,但是在MySQL的select中又不能够去使用存储过程。
接着,就去搜索了一些相关资料,了解到可以去使用函数+视图实现这样的查询
第一次接触MySQL记录一下经历,如果遇到类似问题的小伙伴,自己去找两张表,然后仿造这段sql语句,更换表、字段、和参数进行验证,毕竟手敲过的记忆会深刻!