MySQL 某一列的值加入到另一列
0.背景
| 文件url | 文件名 |
|---|---|
| /usr/local/img/goods/1/2021-12-22-e05bb433bc7a451ca5d7cc9d505d8ed8.jpg | 酸枣糕.jpg |
| /usr/local/img/goods/2/2021-12-21-e05bb433bc7a451ca5d7cc9d505ffffffff.jpeg | x熊猫.可爱.jpeg |
最初的设计是文件名(中文)和文件路径分开,文件路径的文件名是日期+UUID,同时防止上传的文件重复(如果重复上传不会删除之前的,可能是文件名重复或者文件名和内容都重复了)。但下载的时候日期+UUID的文件名不利于阅读,所以做一个缝合怪。
文件url命名为:日期+UUID+文件名+后缀
2021-12-22-e05bb433bc7a451ca5d7cc9d505d8ed8-酸枣糕.jpg
1.分析
- 文件后缀有多重形式,doc、xls、xlsx、jpg、jpeg、pdf等。
- 文件名里面可能有多个
.,要找到最后一个
2.解决方法
sql批量处理,先去除多余空格;然后反转文件url的值,这样即使有多个.,但文件名后缀的.肯定是反转后遍历到的第一个;然后就定位到了位置;使用replace方法把后缀都去除;最后用concat将文件url和文件名进行拼接。
参考:https://blog.csdn.net/hr541659660/article/details/76619363
-- 移除多余空格
SELECT old_name,location,RIGHT(RTRIM(文件URL), LOCATE('.',REVERSE(RTRIM(文件URL)))) AS 文件名后缀,LOCATE('.',REVERSE(RTRIM(文件URL))) 句号的位置 FROM table_name
-- 移除右边多余空格
SELECT RTRIM(' barbar ') AS 移除右边多余空格;
-- 反转
SELECT REVERSE(RTRIM('abcde')) AS 反转;
-- locate(str1,str2) 定位str1出现的位置
SELECT LOCATE('d','abcde');
-- RIGHT(s,n) 函数返回字符串 s 最右边的 n 个字符
SELECT RIGHT('MySQL',3);
MySQL 某一列的值加入到另一列的更多相关文章
- 页面载入时通过获取GridView某行某列的值来控制某一列的控件属性
通过获取状态来控制"查看"button的Visible属性值. 在前台GridView中加入 OnRowDataBound="GridView1_RowDataBound ...
- 【ExtJs】在Ext.grid.Panel中,两列的值相乘作为第三列的值的实现
如: 商品总价=商品单价*商品数量 方法: 商品总价列,使用其renderer属性,为期定义一个方法,该方法将当前record中的另外两列中2个数据相乘后渲染到该商品总价列.
- sql server 将两列的值合并到另一列
select top 100 t2.FullName, * from Subject,(select id, isnull(first_name,'') +isnull(middle_name,'') ...
- innodb 自增列重复值问题
1 innodb 自增列出现重复值的问题 先从问题入手,重现下这个bug use test; drop table t1; create table t1(id int auto_increment, ...
- 学习笔记13—python DataFrame获取行数、列数、索引及第几行第几列的值
1. df=DataFrame([{‘A’:’11’,’B’:’12’},{‘A’:’111’,’B’:’121’},{‘A’:’1111’,’B’:’1211’}]) print df.column ...
- excel查找某一列的值在、不在另一列中
统计中遇到找出一列的值不在另一列的需求: 找出A列中不在B列的值 方法如下: 使用countif函数 比如找出A列中不在B列的值: 在C1中输入 COUNTIF(B:B,A1) 下拉单元格,在首行添加 ...
- 如何取得GridView被隐藏列的值
如何取得GridView被隐藏列的值 分类: ASP.net 2009-06-25 12:47 943人阅读 评论(1 ...
- MySQL 批量修改某一列的值为另外一个字段的值
mysql> select * from fruit; +----+--------+-------+ | id | name | price | +----+--------+-------+ ...
- mysql合并同一列的值
我有例如以下的查询条件显示: 我希望终于显示的效果如图: 将id同样的group_name合并到一行.实现方法:在group_name前面加keywordgroup_concat.然后在sql语句 ...
- 【拼接属性查询方式】MySql某一列属性值为拼接时的查询方式
数据库中某一列的值为 使用IN查询是无法查询到数据的,只能查询到IN(2)或者IN(2,3) 查询结果: , style_id) 正确方式:使用FIND_IN_SET函数 , style_id) , ...
随机推荐
- Mybatis实现树状结构查询
1.实体类 @Data public class CourseChapterVO implements Serializable { private static final long serialV ...
- sql server 检测是否更新并输出更新的数据
create table dbo.test1 (id int,name varchar(10))create table dbo.test2 (id int) insert into dbo.test ...
- Docker部署网心云-挣点电费
网心云 是CDN业务的一种,容器魔方 是网心云的容器安装产品,其安装也很简单. 1.启动容器--一行命令 docker run -d --name watchtower --restart alway ...
- pandas的数据结构--Series创建使用
# 1. 使用Series创建一个空的系列:import pandas as pds=pd.Series()print(s)输出结果为:Series([], dtype: float64) # 2. ...
- Opengl数学markdown
# opengl数学 $$\begin{Bmatrix} {A_{x}}\\ {A_{y}}\\ {A_{z}}\\ \end{Bmatrix} * \begin{Bmatrix} {B_{x}}\\ ...
- 【APT】Bitter APT组织针对巴基斯坦航空综合部门攻击活动分析
前言 蔓灵花(Bitter)是一个被广泛认为来自印度的APT组织,该组织长期针对我国及巴基斯坦的政府.军工.电力.核等部门发动网络攻击,窃取敏感数据,具有较强的政治背景.本次分享一个蔓灵花组织针对巴基 ...
- 记住这个错误org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDAO is not known to the MapperRegistry.
错误: org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDAO is not known to ...
- reactnative安装
React Native 介绍 React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是React 在原生移动应用平台的衍生产物,使用JS.JSX.CS ...
- python——numpy
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. import numpy a = num ...
- [Leetcode 108]有序数组转BST二叉搜索树Convert Sorted Array to Binary Search Tree
题目 https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ Given an integer array ...