我無法在 Laravel 8 中正確獲取 SQL 查詢。我需要的是列中的第一個字符,name但只有這些字符distinct。我想使用字符作為詞匯表描述的鏈接。
$chars = DB::table('parts')
->distinct()
->select('name')
->orderBy('name', 'asc')
->get();
我通過替換從->select('name')到->select(DB::raw('SUBSTRING(name, 0, 1)'))行的行來嘗試它。但是輸出顯然是錯誤的。我找到了一個示例,其中 SUBSTRING 的使用方式與此完全相同。我的查詢有什么問題?
uj5u.com熱心網友回復:
SQL Server 和 MySQL 中的子字串使用從 1 開始的索引作為位置。您的第二個引數應為 1,以指示第一個字符。您的第三個引數應為 1,表示您只需要 1 個字符。
$chars = DB::table('parts')
->distinct()
->selectRaw('SUBSTRING(name, 1, 1) name_index')
->orderBy('name', 'asc')
->get();
uj5u.com熱心網友回復:
你應該像這樣改變你的查詢:
$chars = DB::table('parts')
->distinct()
->select(DB::raw('SUBSTRING(name, 0,2) char_name'))
->orderBy('char_name', 'asc')
->get();
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/380510.html
