Radhakishan Jangid:
私は、クエリで書くことかわからない助けが必要。
私は番号の前に入力された特定の接頭辞の番号と終了番号を開始しているものを見たいと思って、私はユニークな生成された番号を持っている。この数の列の列名の番号を持つテーブルがあります。
私は、クエリは、私が実行できるかを理解していません。
|---------------------|--------------------|
| id | Number |
|---------------------|--------------------|
| 1 | Mumbai-8959965 |
| 2 | Mumbai-8959966 |
| 3 | Mumbai-8959976 |
| 4 | Mumbai-8959980 |
| 5 | MPR-8640100576470 |
| 6 | Mumbai-8959987 |
| 7 | MPR-8640100576475 |
| 8 | Mumbai-8959997 |
| 9 | MPR-8640100576481 |
| 10 | MPR-8640100576482 |
|---------------------|--------------------|
どのように私は次のように値を取得することができます:
|--------------------|----------------------|
| start | end |
|--------------------|----------------------|
| Mumbai-8959965 | Mumbai-8959997 |
| MPR-8640100576470 | MPR-8640100576482 |
|--------------------|----------------------|
誰もが、助けてくださいすることができます。
イチゴ :
次のことを考えてみましょう:
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(id SERIAL PRIMARY KEY
,number VARCHAR(20) NOT NULL
);
INSERT INTO my_table VALUES
(1,'Mumbai-8959965'),
(2,'Mumbai-8959966'),
(3,'Mumbai-8959976'),
(4,'Mumbai-8959980'),
(5,'MPR-8640100576470'),
(6,'Mumbai-8959987'),
(7,'MPR-8640100576475'),
(8,'Mumbai-8959997'),
(9,'MPR-8640100576481'),
(10,'MPR-8640100576482');
SELECT SUBSTRING_INDEX(number,'-',1) a
, MIN(SUBSTRING_INDEX(number,'-',-1)+0)start
, MAX(SUBSTRING_INDEX(number,'-',-1)+0)end
FROM my_table
GROUP
BY a;
+--------+---------------+---------------+
| a | start | end |
+--------+---------------+---------------+
| MPR | 8640100576470 | 8640100576482 |
| Mumbai | 8959965 | 8959997 |
+--------+---------------+---------------+
2 rows in set (0.00 sec)