当使用FIND_IN_SET时,如何获取电子邮件在哪个字段?

时间:2012-12-17 09:28:01

标签: mysql

我在mysql查询中使用FIND_IN_SET 此查询将提供电子邮件ID位于from_email或to_email的输出。 这个查询运行正常。 但问题是我无法检测到最终在to_email或from_email中找到它。我希望它最终只给我这个电子邮件的字段。 以下是我的电子邮件ID

SELECT mail_id, from_firstname, from_lastname, from_email, to_firstname, to_lastname, to_email
FROM support_mail sm WHERE
( 

( FIND_IN_SET ('".$email_id."', sm.to_email) ) AND ( (sm.to_firstname <> '') AND (sm.to_firstname <> 'None') )

OR 

( FIND_IN_SET ('".$email_id."', sm.from_email) ) AND ( (sm.from_firstname <> '') AND (sm.from_firstname <> 'None') )

) 

1 个答案:

答案 0 :(得分:0)

尝试使用以下内容,它可能会解决您的问题:

SELECT mail_id, from_firstname, from_lastname, from_email, to_firstname, to_lastname, to_email
(IF( FIND_IN_SET ('".$email_id."', sm.to_email) ) AND ( (sm.to_firstname <> '') AND (sm.to_firstname <> 'None') ),"yes","no") AS MailTo,
(IF(FIND_IN_SET ('".$email_id."', sm.from_email) ) AND ( (sm.from_firstname <> '') AND (sm.from_firstname <> 'None')),"yes","no") AS MailFrom
FROM support_mail sm WHERE
( 
OR 

( FIND_IN_SET ('".$email_id."', sm.to_email) ) AND ( (sm.to_firstname <> '') AND (sm.to_firstname <> 'None') )

OR 

( FIND_IN_SET ('".$email_id."', sm.from_email) ) AND ( (sm.from_firstname <> '') AND (sm.from_firstname <> 'None') )
)