Mysql
 sql >> Base de données >  >> RDS >> Mysql

Recherche de tableau SQL

En supposant que vous utilisez réellement 234,394,479 comme valeur d'une colonne (vous devez au moins utiliser ,234,394,479, pour pouvoir faire WHERE invited LIKE '%,234,%' dans votre requête), vous devez reconstruire vos tables d'utilisateurs, supprimer le champ invited_users et créez un tableau comme celui-ci :

CREATE TABLE invited_users (
  id INT AUTO_INCREMENT,
  owner_id INT, -- Who's input it is
  target_id INT, -- What's the target user
  PRIMARY KEY ( id),
  UNIQUE ( owner_id, target_id),
  -- Indexes (FOREIGN KEYs!) to users table
);

Et que simplement sélectionner la liste des utilisateurs qui ont invité l'utilisateur 234 avec la requête :

SELECT users.id, users.name
FROM invited_users
INNER JOIN users ON invited_users.owner_id = users.id
GROUP BY users.id
WHERE invited_users.target_id = 234