0

私は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') )

) 
4

1 に答える 1

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') )
)
于 2012-12-17T09:58:10.017 に答える