SELECT ABS(REPLACE(SUBSTRING(sn,LOCATE('\"13-',sn)+1,(LOCATE('\"',sn,(LOCATE ('\"13-',sn)+1))-LOCATE ('\"13-',sn))-1 ),'13-','')) AS paixu FROM tb_course WHERE category_id LIKE '%\"13\"%' ORDER BY paixu DESC
之前不知道mysql SUBSTRING 第三个参数代表截取长度和java的api弄混了,再用abs为字符串排序,这样写肯定适合数据量小的表,效率我感觉不会太差