如何 select 在 mysql 中定义的位置之间插入字符

how to select with character inserted between defined places in mysql

Id | news_photoId_head
-----------------------------
 1 | apple.jpg
 2 | banana.png
 3 | getmesones.hel.apn.jpg
------------------------------

apple_T.jpg
banana_T.png
getmesones.hel.apn_T.jpg
我想获得缩略图和大小的这种格式
我有很长的查询要做到这一点..请告诉我一个简单的方法

select 
concat(substring(news_photoId_head,1,char_length(news_photoId_head)-4),
concat('_T',substring(news_photoId_head,-4))) as thumb from news;

获取像jpg这样的图像格式,尝试以下查询:

SELECT SUBSTRING_INDEX(SUBSTRING(news_photoId_head, -4),'.',-1) FROM users WHERE 1

这种事情在 MySQL 中很难做到。

你可以试试这个:

LEFT(colname, CHAR_LENGTH(colname)-4)

获取不带 .jpg.png 的文件名。

RIGHT(colname, 4)

让你得到 .jpg.png

所以,

  CONCAT(LEFT(colname, CHAR_LENGTH(colname)-4), '_T' ,RIGHT(colname, 4))

产生你想要的结果。您的表达式的附加值是使用 RIGHT() 和使用三个而不是两个参数到 CONCAT().

当然,如果两年后某些傻子将一个名为 confusion.jpeg 的文件放入您的 table 中,这一切都会崩溃。