case语句错误返回一行的mysql查询

case语句错误返回一行的mysql查询,mysql,Mysql,我有一个mysql查询,它提取相关的域(来自与域_相关的域),并使用CASE帮助使结果更整洁。问题是返回的这一行是错误的,因为它返回的域名是666而不是665: SELECT case when domain_related.domain_id = '666' then domain_related.domain2_id else domain_related.domain_id end as domain_id, domain.domain_name FROM domain_related J

我有一个mysql查询,它提取相关的域(来自与域_相关的域),并使用CASE帮助使结果更整洁。问题是返回的这一行是错误的,因为它返回的域名是666而不是665:

SELECT case when domain_related.domain_id = '666' then domain_related.domain2_id else domain_related.domain_id end as domain_id, domain.domain_name
FROM domain_related
JOIN domain ON domain.domain_id=domain_related.domain2_id
WHERE '666' in (domain_related.domain_id,domain_related.domain2_id)

665 is actually sofadmiral.net
666 is actually sofranger.it

but the query results are like so:

665 sofranger.it
667 sofmarine.me
668 soffighter.us
669 sofpilot.com
670 sofgeneral.com

有什么想法吗?

经过几天的调整,没有成功,我终于找到了另一种编写此查询的方法,并在使用UNION命令/函数时找到了它(见下文)。返回的结果是完美的。谢谢大家的帮助

SELECT domain_id, domain_name
FROM domain
WHERE domain_id IN (
    SELECT domain_id as domain_id
    FROM domain_related
    WHERE domain2_id = 666
    UNION
    SELECT domain2_id as domain_id
    FROM domain_related
    WHERE domain_id = 666
)

您的
域\u id
是整数还是字符串?如果是整数,为什么需要引号?@crashintoty您可以添加您的表结构。'域'表是domain\u id,domain\u name。“与域相关”表是与域相关的域id、域id和域2 id。“与域相关”表如下所示:1665666/2665667/3665668。。。等等