我有一个名为
我觉得我已经接近成功了,但如果我没有接近,请告诉我怎样完全更改它。
我知道这段代码会把所有的0都变成1,但我只想把第18个0变成1。
Attendance
的表,其中包含attendanceStatus
和CourseID
两列。由于我希望能够在任何给定阶段将每个0
更改为1
,因此attendanceStatus
列是文本类型。数据中填充了许多0
,但我希望将字符串中最后一个0
更改为1
。数据包含18个0
,因此需要更改第18个字符。我觉得我已经接近成功了,但如果我没有接近,请告诉我怎样完全更改它。
UPDATE Attendance
SET attendanceStatus REPLACE = (attendanceStatus, '0', '1')
WHERE CourseID like '2%';
我知道这段代码会把所有的0都变成1,但我只想把第18个0变成1。
update attendance set attendancestatus = concat(substring(attendancestatus,1,17),'1') where courseID lke '2%' and attendancestatus like '%0';
- xQbertSUBSTRING
函数(提取要保留不变的字符串部分)和CONCAT
函数(将字符串部分连接在一起)。更健壮的解决方案可能还需要调用CHAR_LENGTH
**函数进行健全性检查。而这些表达式看起来会很丑陋。 - spencer7593