返回明文格式的不同文本(但不返回重复的文本)

时间:2015-03-13 17:08:15

标签: mysql

我有一个简单的场景如下:

我有2列:1)id和2)文本(长文本格式)

我使用简单查询从mysql中提取所有信息,如下所示:

select id,text from dbtest

但问题是针对不同的id我可能有相同的文本但是在检索时我不想一次又一次地返回具有相同文本的行,所以我不想返回重复的文本,我试图使用distinct但它没有用,

我怎么能这样做,任何想法?

3 个答案:

答案 0 :(得分:1)

一种选择是使用用户定义的变量:

select id, 
  @text:=if(@text=text, '', text) text
from dbtest, (select @text:='') t
order by text

我通常建议在应用程序端而不是数据库中执行此操作。

答案 1 :(得分:1)

区别适用于所有选定的列。您必须使用GROUP BY:

SELECT id,text FROM dbtest GROUP BY text

答案 2 :(得分:0)

所以我有两个问题,您可以发布您正在使用的代码吗?并且文本的某些字段是空的吗?

查询可能正在检测“Null”类型的事件,如果该字段为空,则重复最后一个事件,因为该变量可能未被取消设置。在这种情况下,您可能只想在循环结束时(我假设)取消设置变量。