Замените ценность переменной ценностью той же самой переменной, но от различного ряда

я нуждаюсь в помощи, у меня есть стол в MySQL с переменной flight_id, который похож:

flight_id
1R10005
1M10000000000
1M10000000001
1M10000000002
1M10000000003
1M10000000004
1M10000000005
1M10000000006
1M10000000007
1R10006
1M10000000008
1M10000000009
1M10000000010
1M10000000011
1R10007
1M10000000012
1M10000000013
1M10000000014
etc....

я хочу заменить весь flight_id , который начинается с '1M100' flight_id '1R1' я хочу получить стол как это:

1R10005
1R10005
1R10005
1R10005
1R10005
1R10005
1R10005
1R10005
1R10005
1R10006
1R10006
1R10006
1R10006
1R10006
1R10007
1R10007
1R10007
1R10007

может кто-то помогать мне с вопросом mysql, пожалуйста:)

0
добавлено отредактировано
Просмотры: 1
de
необходимо ли заменить весь flight_id, который начинается с 1M100 с последним id полета, который начинается с 1R1? или просто необходимо ли заменить последовательность 1M100 1R1?
добавлено автор fthiella, источник
да, i' ve, чтобы заменить их последним flight_id, который начинается с 1R1
добавлено автор Begayim Muratalina, источник

3 ответы

UPDATE myTable set flight_id=REPLACE(`flightId`, '1M100', '1R1') 
WHERE `flightId` LIKE '1M100%'
2
добавлено

Можно попробовать это:

select CASE 
   WHEN `fklightId` like '1M100%' THEN REPLACE(`flightID`, '1M100', '1R1') END 
from your_tablename as flightId;

So now 1M10000000001 will be output as 1R100000001

И если вы хотите удалить больше нолей, тогда увеличивают число нолей в строке замены

select CASE 
   WHEN `fklightId` like '1M100%' THEN REPLACE(`flightID`, '1M100000000', '1R1') END 
from your_tablename as flightId;

Will give 1M10000000001 as 1R101

1
добавлено

Вам нужен ID или некоторая другая колонка, чтобы заказать ваш стол. Если у вас есть ID, вы могли бы использовать что-то вроде этого:

UPDATE
  flights inner join (
    select f1.id, max(f2.id) as new_id
    from flights f1 left join flights f2
         on f1.flight_id like '1M100%'
            and f2.flight_id like '1R1%'
            and f1.id>f2.id
    group by f1.id) fmax
  on flights.id=fmax.id
  inner join flights fdesc
  on fmax.new_id=fdesc.id
SET
  flights.flight_id = fdesc.flight_id

Inner subquery returns, for every flight id, the new_id which is the id where to get the description from. This new_id is the maximum id < than current row, with the description like 1R1.

1
добавлено