Ticket #5452: mythweb_music_sort_ignoring_prefixes.patch

File mythweb_music_sort_ignoring_prefixes.patch, 2.0 KB (added by jonathan@…, 13 years ago)

Proper patch against trunk:r17598

  • mp3act_functions.php

     
    253253    case 'letter':
    254254      if($itemid == "#")
    255255      {
    256         $query = 'SELECT * FROM music_artists '.
    257           "WHERE artist_name REGEXP '^[0-9].*' ".
    258           'ORDER BY artist_name';
     256          $query = "SELECT artist_id, artist_name, " .
     257                   "LOWER(CASE WHEN SUBSTRING_INDEX(artist_name, ' ', 1) IN ('" . implode("', '", $prefixes) . "') " .
     258                   "THEN " .
     259                   "CONCAT( SUBSTRING(artist_name, INSTR(artist_name , ' ') + 1), ' (', SUBSTRING_INDEX(artist_name, ' ', 1), ')' ) " .
     260                   "ELSE artist_name END) " .
     261                   "AS artist_name_sort " .
     262                   "FROM music_artists " .
     263                   "GROUP BY artist_name_sort " .
     264                   "HAVING artist_name REGEXP '^[0-9].*' " .
     265                   "ORDER BY artist_name_sort";
    259266      }
    260267      else
    261268      {
    262         $query = 'SELECT * FROM music_artists '.
    263           'WHERE artist_name LIKE \''.mysql_real_escape_string($itemid.'%').'\' '.
    264           'ORDER BY artist_name';
     269          $query = "SELECT artist_id, artist_name, " .
     270                   "LOWER(CASE WHEN SUBSTRING_INDEX(artist_name, ' ', 1) IN ('" . implode("', '", $prefixes) . "') " .
     271                   "THEN " .
     272                   "CONCAT( SUBSTRING(artist_name, INSTR(artist_name , ' ') + 1), ' (', SUBSTRING_INDEX(artist_name, ' ', 1), ')' ) " .
     273                   "ELSE artist_name END) " .
     274                   "AS artist_name_sort " .
     275                   "FROM music_artists " .
     276                   "GROUP BY artist_name_sort " .
     277                   "HAVING artist_name_sort " .
     278                   "LIKE '" . mysql_real_escape_string($itemid.'%') . "' " .
     279                   "ORDER BY artist_name_sort";
    265280      }
    266281      $result = mysql_query($query);
    267282      if (!$result)