使用tp的方式,将数据库查询字段和传值字符串中的空格替换,然后like
查询,
$where[] = [
'exp',
Db::raw("REPLACE(g.name,' ','') like (REPLACE('%{$params["searchmember"]}%',' ',''))")
];
配合其他代码, 转换成SQL语句如下:
SELECT
g.id,
g.NAME,
count( od.goodsid ) count_buy,
sum( o.strikeprice ) AS pricr_buy
FROM
`goods` `g`
LEFT JOIN `orderdetails` `od` ON `g`.`id` = `od`.`goodsid`
LEFT JOIN `orders` `o` ON `od`.`orderid` = `o`.`id`
WHERE
`added` = 1
AND `audit` = 1
--后面这行 就是转为sql的结果
AND ( REPLACE ( g.NAME, ' ', '' ) LIKE ( REPLACE ( '%11活动 星级保姆%', ' ', '' )) )
AND `o`.`processingstatus` IN ( 'processingstatus02', 'processingstatus04' )
GROUP BY
`g`.`id`
ORDER BY
`g`.`id` DESC