ERREUR SQL: Opérande doit contenir 1 colonne(s)
J'ai cette requête et je reçois l'erreur "Opérande doit contenir 1 colonne(s)", quoi de mal dans ma requête?
SELECT * FROM contact AS b WHERE b.id IN
(
SELECT *
FROM contact AS e
WHERE e.firstname LIKE ?
OR e.lastname LIKE ?
OR e.email LIKE ?
OR e.phone LIKE ?
OR e.company LIKE ?
OR e.profession LIKE ?
OR e.mobile LIKE ?
)
Jetez un oeil ici sql-tutorial.net/SQL-IN.asp et w3schools.com/SQl/sql_in.asp pour certains de référence sur l'Opérateur
OriginalL'auteur newbie | 2009-11-11
Vous devez vous connecter pour publier un commentaire.
L'opérateur s'attend à une liste de valeurs qui correspondent à ce que vous comparez par rapport à: la colonneb.id dans votre cas. Afin de remplacer ce
avec cette
OriginalL'auteur davek
La deuxième sélectionnez doit être
SELECT id
insetad deSELECT *
.OriginalL'auteur Konamiman
Votre OÙ clause utilise DANS pour déterminer les valeurs de b.id sont pertinents pour votre requête. Pour l'utiliser DANS votre deuxième requête, il doit y retourner une seule colonne.
OriginalL'auteur KB22
le problème dans l'énoncé ci-dessus, parce que vous êtes à la sélection de plus d'une colonne,
changer de
OriginalL'auteur Wael Dalloul
Au lieu de
SELECT * FROM contact
, il devrait être d'une colonne qui contient les valeurs correspondant àb.id
.Donc, il devrait être
SELECT e.Id FROM contact
OriginalL'auteur shahkalpesh