#mysql #where-clause
Вопрос:
У меня есть небольшой поисковый запрос по инвентарю. Мне нужно, чтобы первое предложение WHERE было абсолютным, а предложение or было вторичным.
запрос
SELECT *
FROM inventory
WHERE inv_body_style = 'TRUCK'
AND inv_make = 'MAZDA'
OR inv_make = 'FORD'
ORDER BY inv_price, inv_make DESC
Проблема, с которой я сталкиваюсь, заключается в том, что запрос также покажет автомобили Mazda в inveltory … что мне нужно, так это ТОЛЬКО грузовики (так как это условие прецедента). Я мог бы выполнить это с помощью javascript или php, если потребуется, но я бы предпочел выполнить полный запрос с точными результатами в MySQL … спасибо за любую помощь. Овации
Комментарии:
1. Внимательно изучите приоритет оператора !!! затем подумайте, что на самом деле делает ваше состояние. Затем добавьте необходимые круглые скобки. Также изучите
IN
описание оператора.
Ответ №1:
Если вам нужны ТОЛЬКО грузовики любой марки (Mazda или Ford) , используйте скобки в условии поиска.
Например:
SELECT *
FROM inventory
WHERE inv_body_style = 'TRUCK'
AND (inv_make = 'MAZDA' OR inv_make = 'FORD')
ORDER BY inv_price, inv_make DESC