0

次のコード行でデータベースにクエリを実行しようとしています:

$query_check = mysql_query("SELECT * 
                            FROM chat 
                            WHERE sent_by_id || sent_to_id = '$user' 
                               AND sent_by_id || sent_to_id = '$friend_id'");

基本的に私がやろうとしているのは、2 つのテーブルのいずれかが最初の変数を示しているかどうか、および 2 つのテーブルのいずれかが 2 番目の変数を示しているかどうかを確認することです。演算子 OR があることはわかっていますが、ご想像のとおり、この場合は機能しません。

したがって、最終結果は次のようになります。

1,2  
2,1  
1,1  
2,2  

しかし、次のような結果が得られます。

1,1  
1,2  
2,2  
1,1  
2,1  
4,1  
3,1  

等々。

4

3 に答える 3

2

これは次のようになります。

WHERE (sent_by_id = '$user' AND sent_to_id = '$friend_id') 
   OR (sent_by_id = '$friend_id' AND sent_to_id = '$user')

括弧はわかりやすくするためにあります。本当に必要ありません。

于 2013-06-26T08:36:19.250 に答える
0

かっこで試して、OR 演算子を使用してください

$query_check = mysql_query("SELECT * FROM chat WHERE (sent_by_id = '$user' OR sent_to_id = '$user') AND (sent_by_id = '$friend_id' OR sent_to_id = '$friend_id')");
于 2013-06-26T08:32:28.110 に答える