当前位置:Gxlcms > 数据库问题 > (记录)mysql分页查询,参数化过程的坑

(记录)mysql分页查询,参数化过程的坑

时间:2021-07-01 10:21:17 帮助过:10人阅读

这些值都已经传入了,但是就是报错;内容如下:Message: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘(1-1)*20, 20‘ at line 12.

最后发现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   过多   

人气教程排行