次のデータがあります:
me = my_userid;
表:メッセージ
message_id | message_from | message_to
1 | 私| ユーザー
2 | ユーザー| 私
クエリを実行すると、2つの行が表示されます(SELECT DISTINCT message_from、message_to FROM Message WHERE message_from = '"+ me +"' OR message_to = '"+ me +"' ");
私のIDがfrom(送信時)またはTO(他のユーザーが私にメッセージを送信したとき)にある可能性があるため、ORを使用します
-これは2行を返しますが、-に切り替えると同じIDを取得するため、1行を返します。では、クエリでこれをどのように行うことができますか。ありがとう
min()
およびmax()
をスカラー関数として使用できます。
select distinct min(message_from, message_to) as m1, max(message_from, message_to) as m2
from message
where message_from ='"+me+"' OR message_to ='"+me+"'"
これらは、他のデータベースleast()
と同等greatest()
です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加