Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL-Array-Suche

Angenommen, Sie verwenden wirklich 234,394,479 als Wert einer Spalte (Sie sollten mindestens ,234,394,479, verwenden um in der Lage zu sein, WHERE invited LIKE '%,234,%' auszuführen in Ihrer Abfrage) sollten Sie Ihre Benutzertabellen neu erstellen, das Feld invited_users entfernen und erstelle eine Tabelle wie diese:

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

Und dann wählen Sie einfach die Liste der Benutzer aus, die den Benutzer 234 mit der Abfrage eingeladen haben:

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