SQL | ОГРАНИЧЕНИЕ | предел не достигнут - PullRequest
0 голосов
/ 06 мая 2020

У меня есть следующий запрос, чтобы получить айфоны из таблицы1 по цвету и ограничить до 10

SELECT * FROM table1 WHERE color = 'black' LIMIT 10

Приведенный выше код работает отлично, когда черных iPhone в таблице1 меньше 10, я хочу заполнить iPhone номер до 10 с красным цветом, который у меня также есть в таблице1 в одном запросе

1 Ответ

1 голос
/ 06 мая 2020

Вы можете фильтровать по обоим цветам и выполнять условную сортировку:

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
...