За последние 24 часа нас посетили 20417 программистов и 1101 робот. Сейчас ищут 745 программистов ...

Подскажите логику запроса sql

Тема в разделе "PHP для новичков", создана пользователем AnteFil, 14 июн 2020.

  1. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Я запрашиваю из базы sql город и машину. Это одна таблица если я не указываю город выводятся все машины и наоборот. sql сотавлен так
    Код (Text):
    1. SELECT * FROM test_tabl  WHERE name_gorod LIKE %$gorod% AND `name_avto` LIKE %$avto% AND `activ`='1'
    Сейчас я хочу сделать так что при вводе например грузовик осуществлялась выборка ещё по одной записи. Например я пишу Москва мерседес и получаю все мерседесы в Москве. Потом я пишу Москва Грузовики и получаю все грузовики москвы.

    Грузовики находятся в sql там же просто с дополнительной графой vid_avto
    --- Добавлено ---
    Я думаю что нужно как то оставить запрос такой только в конце дописать or vid_avto='$vid_avto'
    Код (Text):
    1. SELECT * FROM test_tabl  WHERE name_gorod LIKE %$gorod% AND `name_avto` LIKE %$avto% AND `activ`='1' OR vid_avto="$vid_avto"

    --- Добавлено ---
    Или я чёт не правильно думаю?
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.734
    Симпатии:
    1.315
    Адрес:
    Лень
    ( Машины OR Город ) AND актив = 1
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    @AnteFil фактически со своими LIKE по единственной таблице ты пытаешся работать с MySQL как с текстовым файлом. Не лучший подход.

    Разница между AND и OR в том, что AND требует одновременного выполнения всех частей условия, а для OR достаточно чтобы только одна часть была истинной.
    В случае с твоими грузовиками, если напишешь через OR, получишь условие "пофигу из какого города, если это грузовик". Понимаешь?
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    Ну и конечно можно скобками комбинировать И и ИЛИ чтобы добиться желаемого.
     
  5. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    У меня получается два типа запроса в одном я запрашиваю город и машину в другом я запрашиваю город и тип транспортного средства. Эти два запроса я как то хочу уложить в один! Сейчас запрос составлен так что я получаю данные если например просто указываю город и получаю все машины в городе или просто машину и получаю нужную машину во всех городах. Как сюда допилить тип машины я чёт не догоняю.
    --- Добавлено ---
    Я хочу запросить грузовики в Москве например ты прав что OR будет мешать другим запросам. Чё делать всё же два запроса?
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    Пробуй.