[英]How to get distinct records but on base on first 2 digits only in MySQL
我想從 MySQL 表中獲取不同的記錄(只有一個字段),並且該字段僅包含數字。
例子:
00010000
01111100
01112000
01118000
02301201
但是根據前 2 位數字考慮不同的記錄。 所以在上面的例子中,我只需要取回 3 條記錄:
00010000
01112000
02301201
此外,我想修剪 rest 的數字,所以實際的最終結果應該是:
00
01
02
如此獨特和分組將不會在這里剪切。 任何想法?
假設您希望重復項中的價值最小,您可以嘗試:
SELECT t1.col
FROM yourTable t1
INNER JOIN
(
SELECT LEFT(col, 2) AS prefix, MIN(col) AS min_col
FROM yourTable
GROUP BY LEFT(col, 2)
) t2
ON LEFT(t1.col, 2) = t2.prefix AND
t1.col = t2.min_col;
注意: MySQL 中的數字不以零開頭,因此您的要求(以及此答案)僅在您的列是文本時才有意義。
DISTINCT
可以與LEFT
配合使用,以提供您想要的結果:
SELECT DISTINCT(LEFT(value, 2)) AS value
FROM data
ORDER BY value
Output
00
01
02
如果您只想要修剪后的值,請嘗試以下操作:
SELECT SUBSTRING(yourColumn,1,2) as trimmedval
FROM Table
GROUP BY SUBSTRING(yourColumn,1,2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.