首页 > 编程语言 >在thinkphp6中使用leftJoin时,怎么使用REPLACE?

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

时间:2023-09-11 21:36:04浏览次数:48  
标签:customer work workID thinkphp6 REPLACE Expression id leftJoin

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

标签:customer,work,workID,thinkphp6,REPLACE,Expression,id,leftJoin
From: https://blog.51cto.com/M82A1/7438473

相关文章

  • replace into
    MySQLreplaceinto用法(insertinto的增强版)在向表中插入数据的时候,经常遇到这样的情况:1.首先判断数据是否存在;2.如果不存在,则插入;3.如果存在,则更新。在SQLServer中可以这样处理:ifnotexists(select1fromtwhereid=1)insertintot(id,update_time)valu......
  • 正则表达式笔记 str.replace+re.sub
    原内容#正则表达式:#(?i)表示接下来的匹配将不区分大小写#.*表示匹配任意字符(除了换行符)零次或多次#(.*)保存捕获的结果,即保存匹配到-h.*之前的全部内容#将字符串元素中(-小写字母)替换为空字符self.df_投料['倒卷前......
  • MySql之 replace 用法
    mysqlreplace实例说明: UPDATEtb1SETf1=REPLACE(f1,'abc','def'); REPLACE(str,from_str,to_str) 在字符串str中所有出现的字符串from_str均被to_str替换,然后返回这个字符串 这个函数用来批量替换数据中的非法关键字是很有用的!如下例子: 例1:UPDATEBBSTo......
  • r'\1'表示替换字符串中的第一个捕获组 将匹配到的字符串被替换为第一个捕获组的内容
    请解释pd.Series.str.replace(pat=r'(?i)(.*)-h.*',#(.*)表示一个捕获组repl=r'\1',#将匹配到的字符串被替换为捕获组的内容regex=True)中r'\1'的作用在pd.Series.str.replace()函数中,r'\1'表示替换字符串中的第一个捕获组......
  • mysql字符串替换 replace方法替换字段中的值
    需求:字符串A是一个JSON字符串,其中的属性值可能为空吗,例如字段”result“{"处理结果":{"字段A":{"结果":""},......,{"字段X":{"结果”:""}}}需求:如果其中的结果为空则将 {"结果":""}替换为""selectreplace(result,'{"......
  • 无涯教程-PHP - eregi_replace()函数
    eregi_replace()-语法stringeregi_replace(stringpattern,stringreplacement,stringoriginalstring);eregi_replace()函数的操作与ereg_replace()完全相同,只是在字符串中搜索模式不区分大小写。eregi_replace()-返回值发生替换后,将返回修改后的字符串。如果未......
  • mysql replace && insert && update && delete
    目录mysqlreplace&&insert&&update&&deletereplacemysqlreplace&&insert&&update&&deletereplace我们在使用数据库时可能会经常遇到这种情况。如果一个表在一个字段上建立了唯一索引,当我们再向这个表中使用已经存在的键值插入一条记录,那将会抛出一个主键冲突的......
  • ThinkPHP6学习笔记2
    门面模式facadefacade不能在模型里面建立关联关系:这里是属于注入是不能使用facade类的Facade怎么获取model实例对象-facedeinstance方法$model=TestFacadeModel::instance();-容器类直接实例化$model=app(TestModel::class,[],true);-facade定义类新建......
  • js前端传json,后台接收‘‘被转为quot使用replace方法替换
    前端解决方案:varjsonstr=datas.replace(newRegExp('"',"gm"),'"')正则参数说明g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。m执行多行匹配。let data=eval('('+jsonString+')');实例1:    jsonstr.replace(newRegExp('"',......
  • 富士施乐M115B M115W打印机提示replace toner清零(空的墨粉盒)
    富士施乐M115BM115W打印机提示replacetoner清零方法:备注:清理时最好拔掉打印机数据线,待清零完成再插上按富士施乐M115BM115W打印机面板上的“menu(菜单)”按键。再通过上下箭头找到“machineinfo(设备信息)”按:OK。继续通过上下箭头找到“Resettoner(重置硒鼓)”,长按:OK不放,直......