LoginSignup
3
2

More than 5 years have passed since last update.

【Laravel】カラム値の一部を切り出してソートをかける方法

Last updated at Posted at 2018-01-10

値の一部分だけをソートしたい

ある項目の一部分だけソートをかけたい場合は以下のように
ある項目の値をsubstrで切り出し、切り出した値を新しくselect項目に追加し、order by句でその項目をソートする
という方法を使う(んだと思ってます)

例)
あるテーブルのチームID(形式:[所属番号1桁]-[連番3桁])の所属番号部分は昇順、連番部分は降順という並びでチームIDを取得したい。
(チームID例:1-050)

// mysqlの場合substring 引数は次の通り→substring(value, start, length)
$query->selectRaw('*, SUBSTRING(team_id, 1, 1) AS affiliation_of_team_id ,SUBSTRING(team_id, 3, 3) AS sequence_of_team_id')
      ->orderBy('affiliation_of_team_id')
      ->orderBy('sequence_of_team_id','DESC'));

この場合、以下のような並びでチームIDを取得できる

1-050
1-049
2-020
2-019 
3-044 
…
9-099

参考リンク

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2