sql >> Databasteknik >  >> RDS >> Mysql

SQL Array-sökning

Förutsatt att du verkligen använder 234,394,479 som värde för en kolumn (du bör åtminstone använda ,234,394,479, för att kunna göra WHERE invited LIKE '%,234,%' i din fråga) bör du bygga om dina användartabeller, ta bort fältet invited_users och skapa en tabell så här:

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

Och än att bara välja en lista över användare som bjöd in användare 234 med fråga:

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


  1. Är det möjligt att definiera en tidsstämpelkolumn som inte är null och som inte har någon standard och inget speciellt beteende vid uppdatering?

  2. MySQL Row Format:Skillnad mellan fast och dynamisk?

  3. Kontrollera efter misslyckad e-post i SQL Server (T-SQL)

  4. Anslut PHP till MSSQL via PDO ODBC