Bonjour à tous. Voici mon problème :
J'ai deux tables : une table 'jeux' et une table 'personnages'. La table 'personnages' contient un champ 'persos_jeux' listant les id des jeux dans lesquels le personnage apparait, séparés par des espaces.
Sur la page d'un jeu, je souhaite afficher les personnages qui y apparaissent. Pour cela, je compare l'id du jeu avec l'ensemble des champs 'persos_jeux' de l'ensemble des personnages, ce que je fais avec LIKE :
Le problème, c'est qu'en admettant que l'id recherché soit 35, il va aussi me sélectionner les 135, 356, etc...
Connaissez vous une solution pour rechercher plus efficacement une valeur exacte dans un champ sql ?
Merci beaucoup
Modifié par maGriffe (15 Dec 2011 - 12:41)
J'ai deux tables : une table 'jeux' et une table 'personnages'. La table 'personnages' contient un champ 'persos_jeux' listant les id des jeux dans lesquels le personnage apparait, séparés par des espaces.
Sur la page d'un jeu, je souhaite afficher les personnages qui y apparaissent. Pour cela, je compare l'id du jeu avec l'ensemble des champs 'persos_jeux' de l'ensemble des personnages, ce que je fais avec LIKE :
mysql_query("SELECT * FROM personnages WHERE persos_jeux LIKE \"%$id_jeu%\"");
Le problème, c'est qu'en admettant que l'id recherché soit 35, il va aussi me sélectionner les 135, 356, etc...
Connaissez vous une solution pour rechercher plus efficacement une valeur exacte dans un champ sql ?
Merci beaucoup

Modifié par maGriffe (15 Dec 2011 - 12:41)