首页 > 解决方案 > 如何用查询中的字符串替换字段的空值

问题描述

我有一个名为访问的表,在其中保存访问过的页面。它包含一个名为 user_id 的列,如果用户通过身份验证,我会保存他的 id,否则我将其设置为 null。

我想用查询中的单词“visitor”替换所有user_id null

基于此 sql 示例How to replace null with string when column is datatype int我进行了以下查询:

 // ..............
 $builder->select('visits.*', DB::raw("ISNULL(str(user_id), Visitor) as name"));

但我得到这个错误:

Illuminate\Database\QueryException: SQLSTATE[42000]: 语法错误或访问冲突:1582 调用本机函数“ISNULL”时参数计数不正确(SQL:选择 count( ) 作为聚合来自 (select visits. , ISNULL(str(user_id) , 访客) 作为名字来自visits

标签: laravellaravel-7

解决方案


推荐阅读