2011-05-08 4 views
-2

J'ai le code suivant qui a deux champs qui sont interrogés.Comment interroger plusieurs champs dans la base de données?

Comment puis-je faire LIKE avec 3-5 champs?

code:

mysql_query("SELECT * FROM practice_exams where 
person_id = '$pid' and message_exam LIKE 
'%$q%' OR message_note LIKE '%$q%'"); 
+0

À quoi faites-vous référence? Voulez-vous dire limiter le nombre de lignes renvoyées pour limiter les champs qui sont sélectionnés (sans utiliser un caractère générique comme *)? – gruntled

+0

Que voulez-vous dire par "interroger les champs"? Qu'ils sont dans la clause 'where'? Si c'est le cas, vous faites déjà référence à 3 (bien qu'il devrait probablement y avoir des parenthèses) –

+6

Pourriez-vous reformuler la question pour qu'elle soit logique, s'il vous plaît? –

Répondre

3

Je suppose que vous voulez dire la recherche au lieu d'interroger. Ajout de plusieurs champs devient plus facile si vous structurez votre déclaration plus agréable:

mysql_query(" 
    SELECT * FROM practice_exams 
    WHERE person_id = '$pid' 
     AND (
      message_exam LIKE '%$q%' 
      OR message_note LIKE '%$q%' 
      OR other_note LIKE '%$q%' 
      OR other_things LIKE '%$q%' 
      ) 
"); 

J'ai ajouté quelques parens là, comme je suppose que ce que fait votre requête doit faire.

Notez qu'un grand nombre d'instructions LIKE ne bénéficient pas de la vitesse de requête.

Questions connexes