У меня есть такая ситуация:
Запрос:
set @rank = 0;
select @rank:=@rank+1, CONCAT_WS(" ",'Group', SubGroup, TertiaryGroup) Items,ItemGroup, item from myTable
Здесь мои примеры текстовых данных
ПРЕДМЕТЫ:
A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.2 Final Drive System Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.3 Transmission Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.3 Transmission Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.3 Transmission Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.3 Transmission Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.3 Transmission Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.3 Transmission Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.4 Underchassis Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.4 Underchassis Condition:
A. CARRIER: 1. UNDERCARRIAGE: 1.4 Underchassis Condition:
B. ENGINE SYSTEM Condition:
B. ENGINE SYSTEM Condition:
B. ENGINE SYSTEM Condition:
B. ENGINE SYSTEM Condition:
B. ENGINE SYSTEM Condition:
B. ENGINE SYSTEM Condition:
B. ENGINE SYSTEM Condition:
B. ENGINE SYSTEM Condition:
B. ENGINE SYSTEM Condition:
B. ENGINE SYSTEM Condition:
B. ENGINE SYSTEM Condition:
B. ENGINE SYSTEM Condition:
Для меня достаточно только предметов, спасибо,
Но мне нужен результат, когда число автоначислений возвращается к 1
если элементы разные или изменены.
Как и в моем примере с образцом, число 10 должно возвращаться к 1
а следующее должно снова возвращаться к 1,2,3,4
и так далее.
Только столбец items
не item
Является ли это возможным?
Заранее спасибо.
Предполагая, что у вас есть способ упорядочить ваши данные (например, столбец идентификатора auto_increment), вы можете
insert into t (items) values
('A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition:'),
('A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition:' ) ,
('A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition:'),
('A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition:' ) ,
('A. CARRIER: 1. UNDERCARRIAGE: 1.2 Final Drive System Condition:') ,
('A. CARRIER: 1. UNDERCARRIAGE: 1.3 Transmission Condition:'),
('A. CARRIER: 1. UNDERCARRIAGE: 1.3 Transmission Condition:' ),
('B. ENGINE SYSTEM Condition:') ,
('B. ENGINE SYSTEM Condition:' ) ;
select items ,
if(items <> @p,@rn:=1,@rn:=@rn+1) rn,
@p:=items previousitem
from t
cross join (select @rn:=0,@p:='') r
order by id;
+-----------------------------------------------------------------+------+-----------------------------------------------------------------+
| items | rn | previousitem |
+-----------------------------------------------------------------+------+-----------------------------------------------------------------+
| A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition: | 1 | A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition: |
| A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition: | 2 | A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition: |
| A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition: | 3 | A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition: |
| A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition: | 4 | A. CARRIER: 1. UNDERCARRIAGE: 1.1 Track System Condition: |
| A. CARRIER: 1. UNDERCARRIAGE: 1.2 Final Drive System Condition: | 1 | A. CARRIER: 1. UNDERCARRIAGE: 1.2 Final Drive System Condition: |
| A. CARRIER: 1. UNDERCARRIAGE: 1.3 Transmission Condition: | 1 | A. CARRIER: 1. UNDERCARRIAGE: 1.3 Transmission Condition: |
| A. CARRIER: 1. UNDERCARRIAGE: 1.3 Transmission Condition: | 2 | A. CARRIER: 1. UNDERCARRIAGE: 1.3 Transmission Condition: |
| B. ENGINE SYSTEM Condition: | 1 | B. ENGINE SYSTEM Condition: |
| B. ENGINE SYSTEM Condition: | 2 | B. ENGINE SYSTEM Condition: |
+-----------------------------------------------------------------+------+-----------------------------------------------------------------+
9 rows in set (0.00 sec)
Попробуй это:
set @rank = 0; set @key = ''; SELECT IF( CONCAT_WS(" ",'Group', SubGroup, TertiaryGroup) = @key, @rank:=@rank+1, 1), @key:=CONCAT_WS(" ",'Group', SubGroup, TertiaryGroup) Items,ItemGroup, item FROM myTable