sql >> Database >  >> RDS >> Mysql

MySQL - De query wijzigen zodat deze op slechts 1 kolom kan worden onderscheiden

Het is niet precies duidelijk wat je wilt. Gezien deze gegevens:

t_uid    url                    title           screen_name
1        http://google.com/     Google          bob
2        http://google.com/     Google Search   bob
3        http://google.com/     Google          tom

welke resultaten verwacht je? Als je wilt:

http://www.google.com  '???'  'bob,tom'   2

dan zou je een SELECT DISTINCT . kunnen doen subquery om de duplicaten te verwijderen (die u in plaats van FROM twl_links zou plaatsen ).

Als je wilt

http://www.google.com  '???'  'bob,tom'   3

dan kun je GROUP_CONCAT(DISTINCT screen_name) . doen om dat te krijgen.

Houd er rekening mee dat in alle gevallen de geretourneerde titel dubbelzinnig is (tenzij er een N:1-toewijzing is tussen URL en titel; tenzij elke URL slechts één afzonderlijke titel heeft)

Ter info, het klinkt alsof je overtollige en moeilijk op te vragen gegevens hebt als gevolg van een gebrek aan normalisatie.



  1. Werken met Structured Query Language (SQL) met Microsoft Access 2010, 2013, 2016 en 2019

  2. DateTime op Where-clausule Oracle

  3. Hoe een trapsgewijze update uitvoeren?

  4. Heeft het zin om MySQL LIMIT 1 te gebruiken bij het opvragen van een geïndexeerd/uniek veld?