mysql 字段内容是用逗号分隔的。怎么按序列查询内容

那天在咖啡馆,坐在我旁边的小伙子在电脑屏幕前抓着头嘟哝道:“这个查询条件一直在变,每次都要手动改SQL,太麻烦了。
”我看着他的帐篷。
有一堆关于用户积分和购买记录的联合查询,并且条件分为不同的条件。
我突然想到,如果有一个东西可以封装这些条件并一键调用,那就容易多了。

这些不是经验丰富的账户应该做的事情吗?它就像一个自定义的函数文件,将复杂的SQL逻辑包裹在其名称中,使用时直接调用即可。
例如,对于小伙子的积分查询,可以创建一个存储过程,传入用户ID、时间范围、积分阈值作为参数,后台会自动运行SQL并直接返回结果。

同样,我最近在公司的ERP系统中也做了这样的事情。
当时就要求辞职。
老板要求计算每个部门、每个月的工作时间,还要求排除节假日。
你写了一个函数,但是参数不够;我尝试写一下,但是逻辑太复杂了。
最后,我写了一个存储过程来接收部门ID和月份,其中包含多个IF判断,并嵌入了排除节假日的逻辑。
说了三遍,进展、证明、鳕鱼。
每次更改参数时,流程保持不变,从而节省了大量工作。
那还是2 02 1 年的夏天,公司的老服务器还在运行。
每次执行大约需要3 秒,并且是SQL Server数据库。

等等,还有一个。
存储过程的好处还不止于此,它们还可以减少网络传输。
想想看,如果复杂的SQL语句直接从客户端发送到服务器,用户体验会很差,尤其是当客户端速度很慢时。
存储过程在数据库上运行。
只需要传递参数并返回结果即可。
该过程在本地处理,效率更高。
重置修改工时统计的方法后,客户反映报表加载速度至少快了一秒。
具体来说,1 .8 秒。
我记得那天考试的时候看了秒表。

现在想想,这个东西用得好的话,确实可以提高开发效率。
但也有一个陷阱,就是说,它是一种痛苦。
存储系统在写入时,一旦数据库结构发生变化就会失败。
上次有同事删除了该表,但是基于该表的所有存储过程都报错。
我花了很长时间才找到它。
那是在2 02 2 年初,这让我们的计划推迟了两天。
所以使用备份程序是好的,但要注意备份和版本控制。

现在许多数据库都支持存储过程,包括 MySQL、PostgreSQL 和 Oracle。
关键是看你的企业是否需要使命。
如果你的查询条件特别复杂并且使用频繁,那么存储过程绝对是一个不错的选择。
如果你只是需要使用某种情况,你可以简单地写SQL或者直接看。

我只是不知道现在有更好的选择吗?比如一些NoSQL数据库的流处理功能或者云端的Serverless函数计算会比传统的存储过程更方便吗?我们必须再考虑一下这个问题。

mysql查询中如何实现oracle中的rownum函数的效果返回每行查询结果的行序号?

这是一个陷阱,不要相信,不要做。