为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【概述】 场景 + 问题概述函数改造
【应用框架及开发适配业务逻辑】
【背景】 做过哪些操作
【现象】 业务和数据库现象
【问题】 当前遇到的问题
【业务影响】
【TiDB 版本】
【附件】 相关日志及监控
为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【概述】 场景 + 问题概述函数改造
【应用框架及开发适配业务逻辑】
【背景】 做过哪些操作
【现象】 业务和数据库现象
【问题】 当前遇到的问题
【业务影响】
【TiDB 版本】
【附件】 相关日志及监控
应该是一样的吧?你是特指substrb和substr的区别么?
SELECT SUBSTRING(CONCAT(str2, str1), LENGTH(str1) + 1, 6) FROM your_table;
tidb是兼容mysql的,改写成mysql的函数就可以
真没用过。
select substrb(‘hello’||‘tidb’,1+lengthb(‘tidb’),6) from dual;
SELECT SUBSTRING(CONCAT(‘hello’, ‘tidb’), LENGTH(‘tidb’) + 1, 6) ;
这不就是oracle改mysql吗?
从函数名理解应该是按字节数和字符数区别
看来大家都没有关注 substrb 和 substr 的区别啊~
substr(cast(concat(str2,str1) as binary),1+length(cast(str1 as binary)),6)
这是记录的啥,能这么写SQL
一个字节一个字符
我是百度之后才知道的~
这些基础函数没个数据库都基本有对应的,自己最清楚自己需求查一下改很简单,前段时间跟一个腾讯的dba看oracle的函数改成tdsql的,拆分成一堆小存储过程也改成了
对于英文这样的单字节编码,substr跟substrb是一样的,但是用在汉字这种多字节中,substrb就有可能出现乱码。既然oracle迁移到tidb,那么顺手改掉了,不必强求。
字面上看,是字符串和字符串byte的区别?
字节与字符。
是字节和字符的区别,我特意百度才知道的~之前都没注意
SELECT SUBSTRING(CONCAT(str2, str1), LENGTH(str1) + 1, 6) FROM table_name;这么写没啥性能可言,除非你结果集过滤的很小。
没听说过
参照mysql语法