2017-09-13 22 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