#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));