Mysql
 sql >> Database >  >> RDS >> Mysql

Ricerca array SQL

Supponendo che tu stia davvero utilizzando 234,394,479 come valore di una colonna (dovresti utilizzare almeno ,234,394,479, per poter fare WHERE invited LIKE '%,234,%' nella tua query) dovresti ricostruire le tue tabelle utente, rimuovere il campo invited_users e crea una tabella come questa:

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
);

E poi basta selezionare l'elenco di utenti che hanno invitato l'utente 234 con query:

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