我编译了一个查询,该查询从“ ss”列中选择一个链接:
的“ s”列:
<a href="#" target="_blank"><img data-src="https://asd.com/123.jpg" srcset="https://asd.com/234.jpg"></a>
<a href="#" target="_blank"><img data-src="https://asd.com/123.jpg" srcset="https://asd.com/234.jpg"></a>
<a href="#" target="_blank"><img data-src="https://asd.com/123.jpg" srcset="https://asd.com/234.jpg"></a>
这是我的SQL:
UPDATE post SET still1 = SUBSTRING_INDEX( SUBSTRING_INDEX( ss,'nk\"><img data-src=\"',-3 ),'.jpg\" s',1 )
UPDATE post SET still2 = SUBSTRING_INDEX( SUBSTRING_INDEX( ss,'nk\"><img data-src=\"',-2 ),'.jpg\" s',1 )
UPDATE post SET still3 = SUBSTRING_INDEX( SUBSTRING_INDEX( ss,'nk\"><img data-src=\"',-1 ),'.jpg\" s',1 )
我使用-3标志引用第一个链接。链接数为三个时,一切正常。但是,当它们较少时(不能超过三个),将发出不正确的结果。有没有第一个链接的替代方法? (对于链接的情况,例如只有2个。)
这是我经历过的一个不可行的选择:
UPDATE post SET still1 = SUBSTRING_INDEX( SUBSTRING_INDEX( ss,'nk\"><img data-src=\"',1 ),'.jpg\" s',-1 )
我不明白为什么该选项不起作用。
Okey,这是我正在寻找的简单查询:
UPDATE post SET still1 = SUBSTRING_INDEX( SUBSTRING_INDEX( ss,'.jpg\" s',1 ),'nk\"><img data-src=\"',-1 )
UPDATE post SET still2 = SUBSTRING_INDEX( SUBSTRING_INDEX( ss,'.jpg\" s',2 ),'nk\"><img data-src=\"',-1 )
...
但是,我仍然不了解递归MySQL逻辑。