diff --git a/lib/music_library/records.ex b/lib/music_library/records.ex index cf9282e5..1886159e 100644 --- a/lib/music_library/records.ex +++ b/lib/music_library/records.ex @@ -32,7 +32,10 @@ defmodule MusicLibrary.Records do base_search = from r in Record, where: not is_nil(r.purchased_at), - order_by: [r.artists[0]["sort_name"], r.title] + order_by: + fragment( + "json_extract(artists, '$[0].sort_name') COLLATE NOCASE ASC, title COLLATE NOCASE ASC" + ) Enum.reduce(parsed_query, base_search, fn {:artist, artist}, search -> diff --git a/lib/music_library/wishlist.ex b/lib/music_library/wishlist.ex index 599aa436..e9d0eb83 100644 --- a/lib/music_library/wishlist.ex +++ b/lib/music_library/wishlist.ex @@ -40,7 +40,10 @@ defmodule MusicLibrary.Wishlist do base_search = from r in Record, where: is_nil(r.purchased_at), - order_by: [r.artists[0]["sort_name"], r.title] + order_by: + fragment( + "json_extract(artists, '$[0].sort_name') COLLATE NOCASE ASC, title COLLATE NOCASE ASC" + ) Enum.reduce(parsed_query, base_search, fn {:artist, artist}, search ->