数据库包含这样的行:
172653_preview_DSC04138_jpg62d70852f2d2944ac82e1f582523fd04_extjpg
我需要选择 _ 之前的第一个数字:172653
位数可以不同。我写了这样一个查询(工作)
update jino_pereezd.smf_aeva_files_scan
set file_name_id =
left(
REGEXP_SUBSTR(file_name, '[0-9]*\_'),
length(REGEXP_SUBSTR(file_name, '[0-9]*\_')) - 1
);
问题:按照我的口味,上面的查询看起来有点不雅。能否以更简单的方式获得相同的结果?
您可以使用
replace.为了不打到行中的其他数字,我附在行首
^。括号内的表达式
(\d*)表示一个子组,通常可以用数字表示。但据我了解,mysql不提供这样的机会。