Извлечение нескольких записей на основе нескольких адресов электронной почты из базы данных MySQL

#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)$';