限制唯一记录的sql

Jos*_*he4 1 mysql sql limit

我有一个表,可能有大约100条记录,带有一个用户名字段。可能有许多具有相同用户名的记录。我如何确保每个用户名仅返回一条记录,而不管它是哪一条记录?

例如下表

users

username    item    firstname   lastname
-------------------------------------------------
superhans   shoes   super       hans
jez         hat     jeremy      sisto
jez         book    jeremy      sisto
flinto      train   fred        flintstone
superhans   shirt   super       hans
Run Code Online (Sandbox Code Playgroud)

仅返回以下内容:

username    item    firstname   lastname
-------------------------------------------------
superhans   shoes   super       hans
jez         hat     jeremy      sisto
flinto      train   fred        flintstone
Run Code Online (Sandbox Code Playgroud)

Jim*_*uts 5

你可以使用DISTINCT,如果你希望返回在搜索结果中的项字段:

SELECT DISTINCT用户名,名字,姓氏FROM用户

如果要包括项目字段,则必须执行以下操作:

SELECT t.username, 
   (SELECT TOP 1 item FROM users WHERE username = t.username) AS item,
   t.firstname,
   t.lastname
FROM (
  SELECT DISTINCT username, item, firstname, lastname
  FROM users
 ) AS t
Run Code Online (Sandbox Code Playgroud)

使用这样的查询没有多大意义。您能否更具体地说明您要实现的目标?