#mysql #sql
#mysql #sql
Вопрос:
Используя базу данных mysql, я пытаюсь получить идентификатор пользователя из 100 человек на основе их адреса электронной почты. У меня есть адрес электронной почты для всех пользователей, но когда я запускаю запрос для нескольких записей, он не работает. Для одной записи это работает. Я попробовал ниже.
Select ID
from users
where email_address IN ("abc@gmail.com, xyz@gmail.com, exs@gmail.com")
Также попробовал это
Select ID
from users
where email_address = ("abc@gmail.com, xyz@gmail.com, exs@gmail.com")
но они не сработали.
Для одной записи это работает, но мне нужно для нескольких записей. Можете ли вы помочь мне выяснить, где я ошибаюсь.
This is for single one
select ID from users where email_address = "abc@gmail.com".
Ответ №1:
Вы передаете одну строку IN
. Вместо:
where email_address IN ('abc@gmail.com', 'xyz@gmail.com', . . . )
Это список строк.
Если вы передаете список в качестве параметра, вы можете намереваться find_in_set()
:
where find_in_set(email_address, 'abc@gmail.com,xyz@gmail.com,...')
Ответ №2:
Вы также можете использовать RLIKE
.
SELECT `id` FROM `users` WHERE `email_address` RLIKE '^(abc@gmail.com|xyz@gmail.com|exs@gmail.com)$';