Anda bisa melakukan ini:
ORDER BY IF(SUBSTRING(name, 1, 14) = 'University of ', SUBSTRING(name, 15), name)
Mungkin ide yang baik untuk membuat tampilan di atas tabel ini yang memproyeksikan name_value
tambahan kolom diatur ke IF()
ekspresi di atas. Kemudian Anda dapat memesan berdasarkan kolom ini dan memilihnya tanpa harus mengotori kueri Anda dengan IF()
.
Contoh tampilan, dengan asumsi nama universitas disimpan di kolom name
:
CREATE VIEW Universities AS
SELECT
list_universities.*,
IF(SUBSTRING(name, 1, 14) = 'University of ',
SUBSTRING(name, 15),
name) AS name_value
FROM list_universities;
Kemudian Anda dapat memilih dari Universities
cara yang sama yang Anda lakukan dari list_universities
, kecuali itu akan memiliki name_value
tambahan kolom yang dapat Anda pilih, atau pesan berdasarkan, atau apa pun.
Perhatikan bahwa pendekatan ini (serta ORDER BY IF(...)
) tidak akan dapat menggunakan indeks apa pun di name
untuk meningkatkan kinerja semacam itu.