Запрос обновления первой строки слева

#mysql

#mysql

Вопрос:

Как я могу обновить строки, содержащие 1 в моем столбце.

 #Select column from table
sample column: 100001, 100002, 100003, 100004, 100005, 100006, 100007, 100008

#How to update one at a time query?
update column: E00001, E00002, E00003, E00004, E00005, E00006, E00007, E00008
 

Комментарии:

1. Хотите изменить только первую строку?

2. Ваш столбец содержит строки, разделенные запятыми, или только одно значение в строке? И что вы подразумеваете под «строками обновления, которые содержат 1 в моем столбце»?

3. Я имею в виду, например, от 100001 до E00001, причина, по которой мне нужно обновить, потому что в моем столбце 1000 , содержащем 1 в первом символе, поэтому мне нужно изменить его, начиная с символа «E»

4. @user3736185 вы проверили мой опубликованный ответ? Это сработает или нет?

Ответ №1:

Если ваши значения не сохранены как разделенные запятой, вы можете использовать substring() для получения строки после 1, и left() функция в предложении where для проверки значения должна иметь 1 в качестве начального символа

 update t 
set `column` = CONCAT('E',SUBSTRING(`column`,2))
where left(`column` , 1) ='1'
 

ДЕМОНСТРАЦИЯ

Редактировать из комментариев

 update t 
set `column` = CONCAT(left(`column` , 1),'E',SUBSTRING(`column`,3))
where right(left(`column` , 2),1) ='1'
 

Демонстрация 2

Комментарии:

1. Последний вопрос, сэр, что, если я хочу изменить второй символ слева, а не первый, пример: обновление 110001 до 1E0001

Ответ №2:

Попробуйте это

 UPDATE table
SET `column` = CONCAT(
                   REPLACE(
                      LEFT(`column`,1), '1', 'E'),      
                      SUBSTRING(`column`, 2));