在 ThinkPHP 6 中,你可以使用 db() 函数来构建复杂的 SQL 查询,以实现 JOIN 并使用 REPLACE 函数。可以按照以下方式修改你的代码:
$res->leftJoin('work', 'work.workID = REPLACE(entry_in.workID, "JP", "")')->where('work.customer_id', $customer_id);在这个例子中,我们将 REPLACE 函数应用在 JOIN 条件中,将 entry_in.workID 中的 "JP" 替换为空字符串,以便与 work.workID 进行比较。
请注意,这里的关键是确保 entry_in.workID 和 work.workID 的数据类型相同,以确保比较的准确性。
另外,如果你需要在 JOIN 条件中使用更复杂的逻辑,可以考虑使用 Expression 类来构建原始的 SQL 表达式,如下所示:
use think\db\Expression;
$res->leftJoin('work', new Expression('work.workID = REPLACE(entry_in.workID, "JP", "")'))->where('work.customer_id', $customer_id);使用 Expression 类可以允许你编写更复杂的 SQL 表达式,以满足你的需求。










