Mysql选择查询字符串操作
我创建了以下查询,该查询在图像扩展之前为injectMysql选择查询字符串操作,mysql,sql,Mysql,Sql,我创建了以下查询,该查询在图像扩展之前为inject\u thumb,但该查询在所有条件下都不起作用 SELECT `user_id`,`image`, CONCAT(SUBSTRING_INDEX(`image`,'.',1),'_thumb.',SUBSTRING_INDEX(`image`,'.',-1)) as `image_thumb` FROM `user_details` 结果 user_id |image |image_thumb --------|---
\u thumb
,但该查询在所有条件下都不起作用
SELECT `user_id`,`image`,
CONCAT(SUBSTRING_INDEX(`image`,'.',1),'_thumb.',SUBSTRING_INDEX(`image`,'.',-1))
as `image_thumb`
FROM `user_details`
结果
user_id |image |image_thumb
--------|-----------|--------------------
1 |gk1.JPG |gk1_thumb.JPG
2 |Tulips.jpg |Tulips_thumb.jpg
3 |vnc.1.jpg |vnc_thumb.jpg
4 |NULL |NULL
10 |NULL |NULL
user\u id
3
rowimage\u thumb
不需要
我想得出以下结论:
3 |vnc.1.jpg |vnc.1_thumb.jpg
您能帮我创建正确的查询吗?可能类似于:
> select @extension:=substring_index('vnc.1.JpG','.',-1) ext,
replace('vnc.1.JpG',@extension,concat('_thumb.',@extension)) thumb;
+-----+------------------+
| ext | thumb |
+-----+------------------+
| JpG | vnc.1._thumb.JpG |
+-----+------------------+
或者用对子字符串\u索引的多次调用替换变量用法:
> select replace('vnc.1.JpG',
substring_index('vnc.1.JpG','.',-1),
concat('_thumb.',substring_index('vnc.1.JpG','.',-1))) thumb;
+------------------+
| thumb |
+------------------+
| vnc.1._thumb.JpG |
+------------------+
使用
子字符串
、长度
和子字符串索引
:
SELECT `user_id`,
`image`,
CONCAT(
SUBSTRING(`image`,
1,
LENGTH(`image`) - LENGTH(
SUBSTRING_INDEX(`image`,'.',-1)
)-1
),
'_thumb.',
SUBSTRING_INDEX(`image`,'.',-1)
) as `image_thumb`
FROM
`user_details`
(我尝试将查询设置为尽可能可读的格式)感谢您的快速回复,但此查询仅适用于
用户id
3
和其他行结果错误,