程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何修复此查询 concat 查询?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何修复此查询 concat 查询??

开发过程中遇到如何修复此查询 concat 查询?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何修复此查询 concat 查询?的解决方法建议,希望对你解决如何修复此查询 concat 查询?有所启发或帮助;

这是我想要执行的,但它不起作用:

$users = DB::table("users")
->SELEct(array(
  'users.*',DB::raw("CONCAT (firstname,' ',lastName) as fullname "),))
->where("fullname","like",$query)
->get();

正如预期的那样,我收到此错误:

column not found: 1054 UnkNown column 'fullname' in 'where clause'

有什么办法可以让 where 子句知道 fullname?我知道我可以做到这一点:

$users = DB::table("users")
->SELEct(array(
  'users.*',))
->where(DB::raw("CONCAT (firstname,lastName) like ".$query))
->get();

但如果我这样做,那么我需要清理 $query,如果准备好的语句像在第一个示例中那样为我处理它,我更喜欢它。

知道如何解决这个问题吗?

解决方法

使用 having() 而不是 where()

$users = DB::table("users")
->SELEct(array(
  'users.*',DB::raw("CONCAT (firstname,' ',lastName) as fullName "),))
->having("fullName","like",$query)
->get();

并更改检查 DB 必须在严格模式下运行的配置设置:

/config/database.php中:严格执行false

'mysql' => [
        ----
       ----
       'Strict' => true,// <--- Change this to false
       ----
 ],
,

对于此类信息,如果您想从数据库中获取。 你可以使用访问器

    public function getFullNameAttribute()
    {
        return $this->first_name.' '.$this->last_name);
    }

用法:

$user = User::find(1);
echo $user->full_name;

大佬总结

以上是大佬教程为你收集整理的如何修复此查询 concat 查询?全部内容,希望文章能够帮你解决如何修复此查询 concat 查询?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。