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) , ...
随机推荐
- Ubuntu 20.04 部署kubernetes 网络组件calico-v3.2.1
1.官方网址: https://projectcalico.docs.tigera.io/archive/v3.21/getting-started/kubernetes/self-managed-o ...
- 保护IIS Web服务器安全的技巧
首先,开发一套安全策略 保护Web服务器的第一步是确保网络管理员清楚安全策略中的每一项制度.如果公司高层没有把服务器的安全看作是必须被保护的资产,那么保护工作是完全没有意义的.这项工作需要长期的努力. ...
- Java的学前准备(2021.7.29)
前言:Emm...已经是编程学习的Day2了(好像Day1不知道哪去了,或许是在考验我的记忆力呢 ).但所幸我依然可继续学习,内容如下. 一.J课程 电脑快捷键 Ctrl+ shift / C/ V/ ...
- PHP开发支付时开启OPENSSL扩展
开发支付功能时,发现openssl类的方法都找不到,大概知道是没有扩展,在网上收集了PHP开启openssl扩展的方法. windows下开启方法: 1: 首先检查php.ini中:extension ...
- iOS block相关面试题
一.前言本文重点来研究一下 objc 的 block,并具体来分析一下以下一些面试题目:block 的内部实现,结构体是什么样?block 是类吗?有哪些类型?一个 int 变量被 __block 修 ...
- window.location.href 下载文件页面出现跳转 (重定向失效的问题)
页面出现跳转的话,要去检查请求的接口是不是出现了问题. 解决方法:URL前面加 "/" ${process.env.VUE_APP_BASE_API} / ${url}
- PyCharm 取消单词拼写检查
在使用PyCharm的时候,有时候变量不符合规范比如"old_pwd"写成了"oldpwd" ,在变量下就会出现波浪线,比较烦人 去除这个拼写检查的地方是:Fi ...
- c# WinForm 多次点击这个按钮会弹出多个窗体, 怎么才能只显示一个窗体。解决方案!
第一种解决方法 "单例" <mark> 书上有 private void toolStripLabel1_Click(object sender, EventArgs ...
- 《动态规划学习笔记》Day1-数字金字塔
这是一道经典的洛谷水题了,虽说是IOI的(但毕竟很古老了),然后我提供一下我的思路吧. 链接洛谷题面:https://www.luogu.com.cn/problem/P1216 首先,金字塔的输入规 ...
- Jmeter-接口测试(三)
一.jmeter接口关联 1.正则表达式实现接口关联 正则表达式可以这样测试 2.jsonpath表达式实现接口关联(只能作用于返回值是token的) 从根目录开始找$.token 从任意目录开始找( ...