Joh*_*ohn 7 mysql oracle hibernate
我正在从Hibernate中的MySQL表中检索一些密码值,并将其替换为MySQL中的其他字符串.我知道Oracle中有translate()来进行替换,但我在MySQL中找不到任何相同的东西.除了MySQL中的Replace()还是可以用于相同的任何库之外,还有其他替代解决方案吗?
到目前为止,MySQL 中还没有与 Oracle 的 TRANSLATE() 函数等效的函数。但是,您可以通过使用嵌套的REPLACE()函数来获得所需的结果。
添加示例 -
Oracle 查询 -
SELECT TRANSLATE('Vikas#Bharti-Infy', '#-', '_.') FROM dual;
Vikas_Bharti.Infy
等效的MySQL 查询将是 -
SELECT REPLACE(REPLACE('Vikas#Bharti-Infy', '#', '_'),'-','.');
Vikas_Bharti.Infy
小智 5
你可以创建一个这样的:
CREATE FUNCTION `translate`(subject varchar(255), what varchar(255), replace_to varchar(255)) RETURNS varchar(255)
begin
declare c int unsigned default 0;
declare result varchar(255);
set result = subject;
while c <= length(subject) do
set result = replace(result, mid(what, c, 1), mid(replace_to, c, 1) );
set c=c+1;
end while;
return result;
end
Run Code Online (Sandbox Code Playgroud)
然后使用:
mysql> select translate('(123) 1234-1234', '( )-','.,.,');
+---------------------------------------------+
| translate('(123) 1234-1234', '( )-','.,.,') |
+---------------------------------------------+
| .123.,1234,1234 |
+---------------------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5318 次 |
最近记录: |