首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将oracle迁移到mysql

问将oracle迁移到mysql
EN

Stack Overflow用户
提问于 2017-01-25 10:21:10
回答 2查看 78关注 0票数 0

我正在尝试将oracle迁移到mysql。

问题1.

代码语言:javascript
复制
Instr('aa bb cc', ' ', -1,1)

我把它改了

代码语言:javascript
复制
CHAR_LENGTH('aa bb cc') - LOCATE(' ', REVERSE('aa bb cc'))+1

两者都返回

代码语言:javascript
复制
6

但是我不知道怎么查询

代码语言:javascript
复制
Instr('aa bb cc', ' ', -1, 2)

问题2.

这是oracle查询。

代码语言:javascript
复制
CASE WHEN Regexp_like(
REPLACE(SUBSTR(TRIM(col), INSTR(TRIM(col), ' ', -1,1), 
                                                        (LENGTH(TRIM(col)) - INSTR(TRIM(col), ' ',-1, 1))
 + 1), ' ',
 ''),
 '[0-9|0-9\-]') THEN
REPLACE(SUBSTR(TRIM(col), INSTR(TRIM(col), ' ', -1, 2),
 (INSTR(TRIM(col), ' ', -1, 1) - INSTR(TRIM(col), ' ', -1, 2)
) +
 1), ' ', '') END

如何将查询改为mysql查询?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-25 10:40:00

MySQL也有instr()函数,但是它的功能比Oracle少

代码语言:javascript
复制
ora :: Instr('aa bb cc', ' ', -1, 1) == 
my  :: length('aa bb cc') - length(substring_index('aa bb cc', ' ', -1))

ora :: Instr('aa bb cc', ' ', -1, 2) == 
my  :: length('aa bb cc') - length(substring_index('aa bb cc', ' ', -2))

MySQL还使用(因此不需要更改):

代码语言:javascript
复制
CASE WHEN value THEN do-something END

MySQL替换:

代码语言:javascript
复制
REPLACE(str, from, to)
https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_replace

其他问题应该都是一样的。

Regexp_like

https://docs.oracle.com/cd/B12037_01/server.101/b10759/conditions018.htm

代码语言:javascript
复制
regexp(source_string, pattern, match_parameter)

https://dev.mysql.com/doc/refman/5.7/en/pattern-matching.html

代码语言:javascript
复制
source_string REGEXP pattern
票数 1
EN

Stack Overflow用户

发布于 2017-01-25 10:34:11

作为一项研究,您可以在MYSQL中使用INSTR,如下所示:

代码语言:javascript
复制
Set @col  = "sample";
select INSTR(@col,"le")

你可以参考这个INSTR()

通过删除空格来获取长度:

代码语言:javascript
复制
select LENGTH((replace(@col," ","")))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41842378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档