'IN'的where子句中的用户变量

时间:2015-07-01 01:17:36

标签: mysql where-clause user-variables

我在MYSQL中使用用户变量时出现问题。这是我写的代码。这不会产生任何错误,但没有显示出预期的结果。

set @org_id_list := (select c.id from tbl_companyinformations c
left join tbl_users u on c.user_id = u.id
where u.email_address LIKE '%pdatar%'
);
select * from tbl_c2c_offers where 
seller_org_id IN (@org_id_list) or buyer_org_id IN (@org_id_list)

但是当我在MySQL中运行它时,它不会返回所需的行。如果我复制用于在第二个select语句的where语句中定义用户变量的select语句,则会显示所需的结果。我的意思是,以下代码产生了所需的结果。

select * from tbl_c2c_offers where 
seller_org_id IN (select c.id from tbl_companyinformations c
    left join tbl_users u on c.user_id = u.id
    where u.email_address LIKE '%pdatar%'
) or 
buyer_org_id IN (select c.id from tbl_companyinformations c
    left join tbl_users u on c.user_id = u.id
    where u.email_address LIKE '%pdatar%'
);

第一次我做错了什么?正如我所说,这些陈述不会导致任何错误,但不会显示所需的结果。

提前感谢您抽出时间帮助我。

干杯,

Prathamesh

0 个答案:

没有答案