如何在查詢中將自定義 if..else 語句添加到選定的列以將數據從數據庫導出到 excel 文件

納吉迪

我正在使用 Laravel 5.8 和laravel-excel將一些數據導出到 Excel 文件中。

所以我將此方法添加到模型中:

public static function getAccounts($id)
    {
        $records = DB::table('members')
            ->where('mys_creator_id',$id)
            ->where('mys_olp_id',4)
            ->join('my_students', 'members.mbr_usr_id', '=', 'my_students.mys_mbr_id')
            ->join('students', 'members.mbr_usr_id', '=', 'students.std_mbr_id')
            ->select('members.mbr_name', 'members.mbr_family', 'members.mbr_father_name','members.mbr_national_code','members.mbr_birthday','members.mbr_phone','members.mbr_mobile','members.mbr_post_code','members.mbr_prv_id','members.mbr_cit_id','members.mbr_gender_id','members.mbr_address','students.std_degree_id','students.std_grade_id','students.std_filed_id','students.std_major_id','students.std_school','students.std_education_type_id','my_students.mys_paid_price')
            ->get()->toArray();
        return $records;
    }

這工作正常,但一些數據保存而id不是文本值:

在此處輸入圖片說明

所有這些 id 都存儲在baseinfos表中。例如std_degree_id8是這樣的:

在此處輸入圖片說明

現在不是返回數字8,而是需要bas_value在導出的 Excel 文件中獲取並返回它。

所以它看起來像這樣:

if(students.std_degree_id == 9){
     // print Elementry
}elseif(students.std_degree_id == 10){
     // print Academy
}else{
     ...
}

那我該怎麼做呢?

更新#1

$records = DB::table('members')
            ->where('mys_creator_id',$id)
            ->where('mys_olp_id',4)
            ->join('my_students', 'members.mbr_usr_id', '=', 'my_students.mys_mbr_id')
            ->join('students', 'members.mbr_usr_id', '=', 'students.std_mbr_id')
            ->join('baseinfos', 'students.std_degree_id', '=', 'baseinfos.bas_id')
            ->join('baseinfos', 'members.mbr_gender_id', '=', 'baseinfos.bas_id')
            ->select(...,'baseinfos.bas_value','members.mbr_address','baseinfos.bas_value',...)->get()->toArray();
    return $records;

如果我再添加兩個baseinfos連接,則會出現此錯誤:

SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique

這主要是因為我baseinfos.bas_valueselect.

偽經

您需要再加入一張表並顯示該表中的相應字段:

public static function getAccounts($id)
    {
        $records = DB::table('members')
            ->where('mys_creator_id',$id)
            ->where('mys_olp_id',4)
            ->join('my_students', 'members.mbr_usr_id', '=', 'my_students.mys_mbr_id')
            ->join('students', 'members.mbr_usr_id', '=', 'students.std_mbr_id')
            ->join('baseinfos', 'students.std_degree_id', '=', 'baseinfos.bas_id')
            ->select('members.mbr_name', 'members.mbr_family', 'members.mbr_father_name','members.mbr_national_code','members.mbr_birthday','members.mbr_phone','members.mbr_mobile','members.mbr_post_code','members.mbr_prv_id','members.mbr_cit_id','members.mbr_gender_id','members.mbr_address','baseinfo.bas_value','students.std_grade_id','students.std_filed_id','students.std_major_id','students.std_school','students.std_education_type_id','my_students.mys_paid_price')
            ->get()->toArray();
        return $records;
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

將 huxtable 數據和 ggplot 導出到一個 Excel 文件中

從excel文件導入並添加到現有數據框

如何使用python將數據從csv文件添加到json鍵中

使用 Talend 將數據添加到 json 文件

使用 JavaScript 將 HTML 表格數據導出到 Excel

VBA將數據從文件夾合併到Excel中的單個工作表

如何將 JSON 文件中的數據添加到 mailto 鏈接中?

將數據從本地 SFTP 文件夾提取到 Azure SQL 數據庫(Azure 數據工廠)

將每個 excel 列數據保存到單獨的文本文件

我想將數據備份到 xml 文件中,如果不將相同數據添加到現有文件中,我找不到如何保存新收到的數據

如何將多個數據附加到文件中?

使用nodejs將CSV文件導入mysql數據庫

無法將所有數據導出到 csv 文件

將文件名的一部分添加到數據框列中 - 具有多個輸入文件

需要每周自動將excel數據加載到數據庫表中

將 Order 列添加到包含 SQL 查詢數據的現有表

將數據從 Firestore 導出到 GCS

Python將項目從數據庫表(sqlite3)添加到字典中

從文本文件中查詢數據並獲取 JSON 列

將數據框導出到 Excel 中的不同工作表而不刪除現有工作表

如何使用從 HTML 文件導入的 Pandas 從數據集中提取特定列?

如何將 MongoDB 數據庫上下文添加到啟動 .netcore 中

我想在 UI 中只向用戶顯示 3 列,但想將所有表數據導出到 excel,那麼如何根據標題文本隱藏該列?

如何將數據添加到 mongoDB 數組?

如何將 draw.io 壓縮數據從導出的 png 文件轉換為 xml

如何根據特定條件從mysql數據庫中選擇查詢

將數據框添加到特定列下的另一個數據框

如何將數據添加到退出的 PSCustomObject 中

使用來自多個數據框的數據將列添加到數據框