在 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 表达式,以满足你的需求。