时间:2021-07-01 10:21:17 帮助过:10人阅读
最后发现limit(,) 函数参数内不能进行计算,只能传入值,并且是int类型。
小结:我们就把(@pageNum - 1) * @pageSize的计算放到了代码中。最后代码如下:
这样我已经成功了一半,为什么说成功了一半呢?因为有些查询条件出现了问题,像模糊查询,怎么都查不出来数据,即时你输入的查询条件是可用的。费了九牛二虎之力找到了问题所在,我们的模糊查询尽管改成了参数化,但是我们把@XXX参数没替换成他对应的值,因为@XXX变成了一个字符串了代码如下:
这个问题我们用mysql的CONCAT()函数进行处理,改之后代码如下:
这样我们就大功告成了。虽然性能上差了很多,但是这个主要是对参数化进行的更改,其中limit(,) 和CONCAT() 函数的使用比较重要。
再有就是本人也是初次接触mysql,许多东西还需要学习。再有就是在给大家提个醒,关于IN() 函数的使用,如果有多个值1,2,3参数化类型会是string,替换值的时候会给‘1,2,3‘ 带上单引号,自然也就找不到你需要的数据了,所以还是用or 慢慢去拼接吧。
郑重声明:本博客,只是为了参数化,性能方面没有过多的考虑。如有错误之处请大家海涵,望多多给予指点。
(记录)mysql分页查询,参数化过程的坑
标签:check near where 为我 mysql string limit table 过多