mysql 查询时,直接使用implode()结果如下
SELECT p.inner_name,p.id_product,ps.sku FROM erp_product p LEFT JOIN erp_product_sku as ps on ps.id_product = p.id_product WHERE ( trim(p.inner_name) in(DCPH208437女鞋,DCPH208437 女鞋) and p.id_department = 10 )
由于内部名是字符串,这样查询会报错,改进后的结果是这样的
SELECT p.inner_name,p.id_product,ps.sku FROM erp_product p LEFT JOIN erp_product_sku as ps on ps.id_product = p.id_product WHERE ( trim(p.inner_name) in('DCPH208437女鞋','DCPH208437 女鞋') and p.id_department = 22 )
其实就是单双引号的拼接:where("trim(p.inner_name) in('".implode("','",$val['inner_name'])."')");