SUBSTRING_INDEX运算符的标志设置错误

时间:2018-11-17 19:43:22

标签: mysql

我编译了一个查询,该查询从“ 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 )

我不明白为什么该选项不起作用。

UPD:

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逻辑。

0 个答案:

没有答案