在thinkphp6中使用leftJoin时,怎么使用REPLACE?

entry_in表里面的workID字段是这样的“JP20230801”,在work表里面的workID是20230801,

看了下thinkphp6的手册,发现join方法不支持闭包查询。

这样的话,使用join的时候,怎么把JP去掉?

$res->leftJoin('work', 'work.workID = REPLACE(entry_in.workID, "JP", "entry_in.workID")')->where('work.customer_id',$customer_id);

这样会报错

阅读 3.8k
2 个回答
$results = Db::table('entry_in')  
    ->alias('e')  
    ->join('work w', 'SUBSTRING(e.workID, 3) = w.workID')  
    ->select();
$res->leftJoin('work', 'work.workID = REPLACE(entry_in.workID, "JP", "")')->where('work.customer_id', $customer_id);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题