如何在具有相似值的列上应用distinct

时间:2017-04-21 03:53:40

标签: php mysql

我有一个包含列ID和文本的表格如下:

id  text
001 hello
003 hi
006 test

我需要显示给定ID的建议列表,比如'001'

现在它将获取所有可能的记录。即使我在这里应用DISTINCT,我怀疑它仍会显示所有值,因为它们的ID是唯一的。

是否可以仅为'hello'选择一个值?如果是,它将显示哪个Id?我认为选择这种方式不是一个好主意,还是常见的情况?

我期待的是,建议清单应如下所示:

SELECT id, text FROM `tablename` AS `table` WHERE `id` LIKE '00'

不幸的是,我在这里不能使用GROUP BY,因为我在查询中使用LIKE。

public class AppResult implements java.io.Serializable
{
   static final long serialVersionUID = 1L;

   private java.lang.String key;
   private java.lang.String value;

   //getters and setters ...
}


public class BaseFeature implements java.io.Serializable
{

   static final long serialVersionUID = 1L;

   private int age;

   //getters and setters ...
}

public class RuleResult implements java.io.Serializable
{

   static final long serialVersionUID = 1L;

   private java.lang.String ruleName;
   private java.lang.Long score;
   private boolean state;

   //getters and setters ...
}

请告知。

1 个答案:

答案 0 :(得分:-1)

在这里提到:https://dev.mysql.com/doc/refman/5.7/en/exists-and-not-exists-subqueries.html

此解决方案适用于我的情况:

SELECT DISTINCT text FROM tablename
  WHERE EXISTS (SELECT * FROM tablename
                WHERE `id` LIKE '%00%')