2010-06-30 5 views
-2

J'essaie de générer une requête pour une utilisation avec un champ de recherche intelligent, suggère ala google.Erreur de syntaxe dans une requête SQL automatiquement formée

Je ne peux pas créer la requête directement, bien que je puisse voir quelle requête a été faite via les journaux.

J'ai posté la requête qui est envoyée, qui a une erreur de syntaxe mais je ne sais pas pourquoi.

SELECT DISTINCT IF(guests.passport != '', Concat(guests.passport, 
                  IF(
              guests.lastname != 
              '' 
                OR guests.passport!= '', 
                  Concat 
                  (' (', 
                  IF(guests.lastname != 
                  '', 
                  guests.lastname, 
                  '{blank}') 
                  , ', ', 
                  IF(
                  guests.firstname != '' 
                  , guests.passport, 
                  '{blank}') 
                  , ')'), '')), 
           IF(guests.lastname != '' 
        OR guests.passport!= '', Concat(IF(guests.lastname != '', 
                guests.lastname, 
                '{blank}'), ', ', 
                      IF(
              guests.passport!= '', 
              guests.passport, '{blank}')), 
           '' 
       ))    AS display, 
       `guests`.`uuid` AS VALUE, 
       as    secondary, 
       guests.id  AS classname 
FROM guests 
WHERE (guests.id = 0) 
     AND ((guests.firstname LIKE 'b%' 
       OR guests.lastname LIKE 'b%' 
       OR guests.passport LIKE 'b%') 
       OR ((guests.firstname LIKE 'b%' 
        OR guests.firstname LIKE '% b%' 
        OR guests.lastname LIKE 'b%' 
        OR guests.lastname LIKE '% b%' 
        OR guests.passport LIKE 'b%' 
        OR guests.passport LIKE '% b%'))) 
ORDER BY IF(guests.passport != '', Concat(guests.passport, 
               IF(guests.lastname != '' 
                   OR 
               guests.passport!= '', 
               Concat 
               (' (', 
               IF(guests.lastname != '', 
               guests.lastname, '{blank}') 
               , ', ', 
                     IF(
               guests.firstname != '' 
                 , guests.passport, 
               '{blank}') 
                 , ')'), '')), 
        IF(guests.lastname != '' 
       OR guests.passport!= '', Concat(IF(guests.lastname != '', 
               guests.lastname, 
                     '{blank}' 
              ), ', ', 
             IF(
             guests.passport!= '', guests.passport, 
             '{blank}' 
             )), 
        '' 
     )) 
LIMIT 0, 8 

Y at-il une erreur flagrante dans cette requête?

+0

Faites-nous tous une faveur et mettez un peu d'espace dans votre pote. –

+0

Jacob: Vous devez regarder en utilisant le texte intégral Recherche vos recherches de texte - plus rapide, et moins verbeux ... –

+0

Je n'ai aucun contrôle sur la requête qui est générée, comme je travaille avec un cadre et il est automatiquement formé. – Jacob

Répondre

1

Regardez cette partie:

WHERE() AND 

() n'est pas une clause WHERE valide.

+0

Ah, merci, c'était tout. J'ai remidied que cependant et il y a toujours une erreur de syntaxe. J'ai édité ma question pour éviter d'en poster une nouvelle, mais laissez-moi savoir si je devrais revenir et juste vous marquer comme la réponse à ma question initiale – Jacob