如何比我的代码更容易选择我的SQL? [关闭]

Can I use a loop to select in MySQL?

$sql="SELECT * 
        FROM message_contact 
       WHERE (    user1 = '$name1' 
               OR user1 = '$name2' 
               OR user1 = '$name3' 
               OR user1 = '$name4' 
               OR user2 = '$name1' 
               OR user2 = '$name2' 
               OR user2 = '$name3' 
               OR user2 = '$name4' ) 
         AND cantact_type = '1' 
       order by id asc ";

You can rewrite it this way

SELECT * 
  FROM message_contact
 WHERE contact_type = 1 
   AND ('$name1' IN(user1, user2)
     OR '$name2' IN(user1, user2)
     OR '$name3' IN(user1, user2)
     OR '$name4' IN(user1, user2))
 ORDER BY id 

You can group the variables of names and use IN clause, Just like

SELECT * 
  FROM message_contact
    WHERE contact_type = 1 
      AND (user1 IN($name1, $name2, $name3, $name4)
      OR (user2 IN($name1, $name2, $name3, $name4)
      OR (user3 IN($name1, $name2, $name3, $name4)
      OR (user4 IN($name1, $name2, $name3, $name4)
    ORDER BY id