Вы можете фильтровать по обоим цветам и выполнять условную сортировку:
SELECT *
FROM table1
WHERE color in ('black', 'red')
ORDER BY color = 'red'
LIMIT 10
Condition color = 'red'
дает 1
при выполнении, иначе 0
- так что это фактически ставит 'black'
первым.
Вы также можете использовать field()
здесь:
SELECT *
FROM table1
WHERE color in ('black', 'red')
ORDER BY FIELD(color, 'black', 'red')
LIMIT 10