Т.е. есть условие 1 и условие 2. Если найдена запись по условию 1 - то она включается. Если есть записи по усл 1 и по усл 2, то только одна любая запись по усл 1. Если нет записией по усл1 и есть по усл2 - то любая из найденых по усл2.
почему бы не написать функцию, которая ищет подходящую запись, сначала по первому условию, потом если не нашлась то по второму, и возвращает ее или ее ключ
В идеальной системе вообще вся логика в бд, кроме разве что многообразия форм запросов на чтение, но я и их стараюсь оборачивать в интерфейсные функции