У меня есть таблица базы данных, где мне нужно проверить, введен ли пользователь в той же или частично той же информации.Оптимизировать несколько запросов OR
Вот что я имею в виду
ДБ раскладка
rec_id (pk), user_id,
name, phone, address_1, address_2, zip,
company, co_phone, co_address_1, co_address_2, co_zip,
billing, bi_phone, bi_address_1, bi_address_2, bi_zip
Запросов
SELECT rec_id
FROM tbl_name
WHERE user_id = '123456789'
OR '1112223333' IN (phone, co_phone, bi_phone)
OR 'John Doe' IN (name, business, billing)
OR '12345' IN (zip, co_zip, bi_zip)
OR '123 main street' IN (address_1, co_address_1, bi_address_1)
OR 'po box 123' IN (address_2, co_address_2, bi_address_2)
Если какой-либо из спичек данных (и да будет ложных срабатываний) Я нужен старый rec_id.
Хотел бы узнать, есть ли лучший способ сделать это?
Благодаря
hmm интересно, возможно, придется попробовать этот. –
как насчет UNION ALL вместо UNION? эффективность? –
@Phill Pafford: UNION ALL быстрее, чем UNION, потому что он не удаляет дубликаты, но я предполагаю, что вы * сделаете * хотите удалить дубликаты здесь. –