2017-09-13 20 views
-2

返回单个值我创建了一个表叫messages如何比较两个或多个字符串,并从数据库

在我有三分列

  1. 编号
  2. 消息

number列我已在下面插入数据

Number   Messages 
------------------------- 
123456789   Hi 
678901111   Hello 
+91123456789  Hi 
+915678901111  Hello 

当我使用的查询

Select distinct(right(col2,10) as col2 from message; 

我想我的结果

Number   Messages 
------------------------- 
123456789   Hi 
678901111   Hello 

这就是我想实现 我怎样才能让123456789只返回一个

+1

这GROUP BY是无效的,将在旧的MySQL版本返回一个不可预知的结果,将提高在新版本中的错误(除非)一般的GROUP BY规则说:如果指定了GROUP BY子句,那么SELECT列表中的每个列引用必须标识一个分组列或者是一个set函数的参数! – jarlh

+1

添加一些示例表格数据和预期结果 - 作为格式化文本表格。 (不是图像) – jarlh

回答

0

从样本数据中假设您需要distinct最后一个0123列表可以使用number列和message列中的数字,您可以使用rightdistinct函数来生成所需的结果,如下所示。

SELECT distinct(right(number,9)) AS number, 
     message 
FROM t1 

上面的查询将同时characterinteger数据类型的工作。

结果:

number  message 
------------------ 
123456789 hi 
678901111 hello 

您可以查看演示here

+0

不工作的兄弟,当我使用它时,它显示了两个结果 – user8515823

+0

@ user8515823:你能分享你想要的输出吗?我模拟了您发布的样本数据并分享了结果。您可以查看答案中包含的演示。 – zarruq

+0

当+91234567890它显示234567890,但它为1234567890它显示了一些结果...我想我的结果,因为当有两个相同的数字,如+917904621001和7904621001(数字 - 列),和(消息列)'嗨' &'hello'as two message我想只返回一个号码和两条消息7904621776(嗨,你好)... – user8515823