У меня есть странная вещь, и это, вероятно, подразумевает странный запрос. В основном то, что у меня есть до сих пор:
SELECT * FROM locations WHERE name IN ('city1','city2','country1','city3');
Это отлично работает, но я хочу изменить этот запрос. Скажем, я хочу как-то сгруппировать city1
с country1
, поэтому, если один из них возвращает строку (является допустимым селектором для запроса), то другой не должен больше выполняться. Что-то вроде:
SELECT * FROM locations WHERE name IN (('city1' OR 'country1'),'city2','city3');
Этот запрос работает, но возвращает только те значения, которые содержат city2
и city3
, поэтому не то, что я хочу.
Возможно ли что-то подобное?
EDIT:
Чтобы быть более конкретным, вот пример.
У меня есть 3 локации, которые (в PHP) я собираюсь разбить на 5:
Bucharest, Romania
New York
Barcelona, Spain
они станут 3 наборами массивов:
array( 'Bucharest', 'Romania' )
array( 'New York' )
array( 'Barcelona', 'Spain' )
Я хочу посмотреть континент каждой из этих локаций. Я буду искать их все в одном запросе, используя предложение IN
из MySQL. Я хочу, чтобы запрос возвращал 3 строки: Europe
, North America
, Europe
.
Однако мой запрос не может найти запись для Bucharest
, потому что ее нет в таблице, поэтому я хотел бы найти следующий термин в массиве: Romania
.
Надеюсь, это прояснит ситуацию.