例如:将rocky_bbs_notes表中的content按<br>=========================================<br>字符串进行分割,并从最后一次出现的位置开始分割。
SELECT * from (SELECT reverse(SUBSTRING(reverse(content),LOCATE('>rb<=========================================>rb<',reverse(content)))) s1,
reverse(SUBSTR(reverse(content) FROM 1 FOR LOCATE('>rb<=========================================>rb<',reverse(content))-1)) s2from rocky_bbs_notes
WHERE CONTENT like '%<br>=========================================<br>%') t WHERE t.s1 like '%<br>=========================================<br>%';
实现原理:
1、利用reverse()函数将字符串反过来
2、将反过来的字符串查找第一次出现>rb<=========================================>rb<的位置
3、根据上面得到的位置再利用substring()来截取前面部分和后面部分,最后再利用reverse()反过来就得到了需求的两个字符串。