sql >> Databáze >  >> RDS >> Mysql

mySQL Group podle jména člena

Myslím, že o tohle ti jde.

SELECT messages.* 
  FROM 
  (SELECT MAX(lastseen) AS lastseen,IF ('Tom' = `from`,`to`,`from`) as otheruser FROM messages
    WHERE 'Tom' IN (`from`,`to`) GROUP BY otheruser
   )
AS latest INNER JOIN messages ON latest.lastseen = messages.lastseen
                             AND (('Tom' = messages.from AND latest.otheruser = messages.to)
                                 OR
                                 ('Tom' = messages.to AND latest.otheruser = messages.from))
ORDER BY messages.lastseen
DESC,`read`='no' limit 10

stačí nahradit 'Tom' svou proměnnou

Tím se vrátí posledních 10 uživatelů, kteří poslali zprávu „Tomovi“ nebo „Tomovi“.




  1. MySQL Workbench nemůže načíst soubor mysql.proc

  2. Znovu propojit gridovou infrastrukturu

  3. Jak zacházet s chybou u duplicitních záznamů?

  4. Dotaz MySQL pomocí CASE pro VÝBĚR více sloupců