У меня есть таблица под названием Attendance
и столбцы с именем attendanceStatus
и CourseID
. Столбец attendanceStatus
является текстовым типом, потому что я хочу иметь возможность изменять каждый 0
до 1
на любом данном этапе. Данные заполняются 0
, но я хочу изменить последние 0
в строке на 1
. Данные содержат 18 0
, так что это будет 18-й символ, который мне нужно будет изменить.Замена определенного символа в строке
Я чувствую, что я подошел близко к этому, но я готов прислушаться к его изменению, если я не близко.
UPDATE Attendance
SET attendanceStatus REPLACE = (attendanceStatus, '0', '1')
WHERE CourseID like '2%';
Я понимаю, что этот код изменяет все в 0-х до 1-х, и я только хочу, чтобы изменить 18 0.
'посещаемости обновление устанавливается attendancestatus = CONCAT (подстроки (attendancestatus, 1,17), '1'), где courseID LKE '2%' и attendancestatus как '% 0' ; ' – xQbert
Учитывая этот тип требования, кажется, что этот столбец содержит более одного отдельного значения. Если вы хотите изменить значение одного символа в определенной позиции в столбце символов (в таблице MySQL), решение для этого будет включать функцию ** 'SUBSTRING' ** (для извлечения частей строку, которую вы хотите оставить без изменений) и ** ** CONCAT' ** (чтобы объединить части строки обратно вместе). Более надежное решение, вероятно, также вызовет функцию ** 'CHAR_LENGTH' **, чтобы выполнить проверки работоспособности. И эти выражения будут уродливыми. – spencer7593