head-img Sihan's Blog

laravel orm中使用 sum() 与 substr() 组合情况下,substr()内参数被替换解决办法

PHP, Database

查询中涉及到sum()函数和substr函数组合

sum( SUBSTR( xxx,3,1 ) = 5 OR SUBSTR( xxx,3,1 ) = 6 )  as sum,

运行后结果不正确,打印sql发现substr内参数被替换为:

sum( SUBSTR( xxx,1 ) = 5 OR SUBSTR( xxx,1 ) = 6 )  as sum,

解决办法,将substr中,分割使用表述语法代替:

sum( SUBSTR( xxx FROM 3 FOR 1 ) = 5 OR SUBSTR( xxx FROM 3 FOR 1 ) = 6 )  as sum,

再次运行,结果达到预期

laravel
打赏本文
二维码