我需要定义一个变量列表,以便在多个MySQL查询中使用。
变量将是邮件列表。我试图以不同的方式定义它,但它总是让我在构造中出错。
SET @listamails='mail1@gmail.com,mail2@gmail.com';
Select * from user WHERE mail IN (@listamails);
有什么想法吗?
谢谢
答案 0 :(得分:0)
您无法使用单个变量将列表传递给IN
。 MySQL中最简单的解决方案是find_in_set()
:
Select u.*
from user u
where find_in_set(mail, @listamails) > 0;
但是,这不能利用索引。为此,您可能希望使用动态SQL。
答案 1 :(得分:-1)
试试这个
SET @listamails='mail1@gmail.com','mail2@gmail.com';
Select * from user WHERE mail IN (@listamails);