Vous devez modifier votre schéma de la table, il n'y a même pas dans le 1NF, la façon dont vous l'avez. Vous devriez créer un minimum de deux tables pour gérer cela, mais je suggérerais trois tables, compte tenu du fait que les sports vont se répéter.
Ceux-ci seraient vos tables ...
utilisateurs
id | name | age
sport
id | sport
user_sports
user_id | sport_id
Ce seraient les requêtes ...
Lorsque vous générez les cases à cocher, vous sélectionnerez de la table sports
, et en tant que valeur vous mettriez l'id du sport, pas le nom.
insérez Notez pour insérer, vous allez utiliser mysql_insert_id
pour obtenir l'ID de l'utilisateur, qui sera utilisé sur la table de relation.
INSERT INTO users(name, age) VALUES('John', 22);
INSERT INTO user_sports(user_id, sport_id) VALUES(mysql_insert_id(), 123);
sélectionnez si vos cases contiennent l'identifiant du sport comme valeur
SELECT u.id user_id, u.name, u.age, s.sport
FROM users u
INNER JOIN user_sports us
ON u.id = us.user_id
AND us.sport_id = 123
INNER JOIN sports s
ON us.sport_id = s.id
sélectionnez si vous avez le nom du sport
SELECT u.id user_id, u.name, u.age, s.sport
FROM users u
INNER JOIN user_sports us
ON u.id = us.user_id
INNER JOIN sports s
ON us.sport_id = s.id
AND s.sport = 'Football'
effacer
DELETE u, us
FROM users AS u
INNER JOIN user_sports AS us
ON u.id = us.user_id
INNER JOIN sports AS s
ON us.sport_id = s.id
AND s.sport = 'Basketball'
Vous devriez avoir au moins 2 tables pour gérer cela. Avez-vous besoin de connaître les requêtes, les modèles ou les deux? –
@Glide: J'ai besoin de requêtes et de modèles – karthick