MySQL全角转换为半角_MySQL
?
序言:
用户注册时候,录入了全角手机号码,所以导致短信系统根据手机字段发送短信失败,现在问题来了,如何把全角手机号码变成半角手机号码?
1,手机号码全角转换成半角
先查询出来全角半角都存在的手机号码的数据
SELECT a.username ,COUNT(1) AS num
FROM(
SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(uu.user_name,'0','0'),'1','1'),'2','2'),'3','3'),'4','4') ,'5','5'),'6','6'),'7','7') ,'8','8'),'9','9') AS username
FROM UC_USER uu WHERE uu.`USER_NAME` IS NOT NULL
)a GROUP BY a.username HAVING (COUNT(1)>1)
;
得到如下重复记录:
("MB.134xx76802x" ,
"MB.136xx88105x" ,
"MB.152xx80801x" ,
"MB.157xx49518x" ,
"MB.186xx88282x" ,
"MB.189xx94855x" ); )
然后删除掉已经存在半角的全角手机号码记录,不然转换后会有重复的手机号码。
DELETE FROM `UC_USER`
WHERE MOBILE LIKE '%1%'
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(user_name,'0','0'),'1','1'),'2','2'),'3','3'),'4','4') ,'5','5'),'6','6'),'7','7') ,'8','8'),'9','9')
IN("MB.134xx76802x" ,
"MB.136xx88105x" ,
"MB.152xx80801x" ,
"MB.157xx49518x" ,
"MB.186xx88282x" ,
"MB.189xx94855x" );
之后再修改全角手机号码为半角手机号码
UPDATE UC_USER uu
SET uu.`MOBILE`=REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(uu.`MOBILE`,'0','0'),'1','1'),'2','2'),'3','3'),'4','4') ,'5','5'),'6','6'),'7','7') ,'8','8'),'9','9'),
uu.`USER_NAME`=REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(uu.user_name,'0','0'),'1','1'),'2','2'),'3','3'),'4','4') ,'5','5'),'6','6'),'7','7') ,'8','8'),'9','9')
WHERE uu.`MOBILE` IS NOT NULL;
2,如何把所以的全角转换成半角
上面只是人为用比较笨拙的10个replace将全角转换成了半角,有没有一种通用的思路或者方法来实现呢?于是google了很多资料,写下如下的存储函数。
DELIMITER $$
USE csdn $$
CREATE FUNCTION `csdn`.`func_convert`(p_str VARCHAR(200),flag INT)
RETURNS VARCHAR(200)
BEGIN
DECLARE pat VARCHAR(8);
DECLARE step INT ;
DECLARE i INT ;
DECLARE spc INT;
DECLARE str VARCHAR(200);
SET str=p_str;
IF flag=0 THEN /**全角换算半角*/
SET pat= N'%[!-~]%' ;
SET step= -65248 ;
SET str = REPLACE(str,N' ',N' ');
ELSE /**半角换算全角*/
SET pat= N'%[!-~]%' ;
SET step= 65248 ;
SET str= REPLACE(str,N' ',N' ') ;
END IF;
SET i=LOCATE(pat,str) ;
loop1:WHILE i>0 DO
/**开始将全角转换成半角*/
SET str= REPLACE(str, SUBSTRING(str,i,1), CHAR(UNICODE(SUBSTRING(str,i,1))+step));
SET i=INSTR(str,pat) ;
END WHILE loop1;
RETURN(str)
END $$
DELIMITER ;
3,google出来的sqlserver中的全角半角转换函数。
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
FUNCTION `test`.`u_convert`(@str NVARCHAR(4000),@flag BIT )
RETURNS NVARCHAR
BEGIN
DECLARE @pat NVARCHAR(8);
DECLARE @step INTEGER;
DECLARE @i INTEGER;
DECLARE @spc INTEGER;
IF @flag=0
BEGIN
SELECT N'%[!-~]%' INTO @pat;
SELECT -65248 INTO @step;
SELECT REPLACE(@str,N' ',N' ') INTO @str;
END
ELSE
BEGIN
SELECT N'%[!-~]%' INTO @pat;
SELECT 65248 INTO @step;
SELECT REPLACE(@str,N' ',N' ') INTO @str;
END
SELECT patindex(@pat COLLATE LATIN1_GENERAL_BIN,@str) INTO @i;
WHILE @i>0 DO
SELECT REPLACE(@str, SUBSTRING(@str,@i,1), NCHAR(UNICODE(SUBSTRING(@str,@i,1))+@step)) INTO @str;
SELECT patindex(@pat COLLATE LATIN1_GENERAL_BIN,@str) INTO @i;
END WHILE
RETURN(@str)
END $$
DELIMITER ;
----------------------------------------------------------------------------------------------------------------
原博客地址: http://blog.itpub.net/26230597/viewspace-1316445/
原作者:黄杉 (mchdba)
----------------------------------------------------------------------------------------------------------------

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











전각과 반각의 차이점: 1. 문자가 차지하는 공간 2. 문자의 표현 3. 입력 방법의 상태 5. 시스템 명령의 사용 세부 소개: 1. 문자 점유 공간, 전각 문자는 두 개의 표준 문자 위치를 차지하고 반각 문자는 하나의 표준 문자 위치를 차지합니다. 2. 문자 표현, 전각 문자는 두 개의 표준 문자 위치를 차지합니다. 한자 또는 기타 종류의 문자를 말하며, 반각은 한 문자가 표준 문자 위치를 차지하는 것을 의미하며, 일반적으로 영문자, 숫자, 기호 등에 사용됩니다.

일상생활에서 우리는 전각과 반각의 문제에 자주 직면하지만, 그 의미와 차이점을 깊이 이해하는 사람은 거의 없습니다. 전각과 반각은 실제로 문자 인코딩 방법의 개념이며 컴퓨터 입력, 편집, 조판 등에 고유한 특수 응용 프로그램이 있습니다. 이 기사에서는 전체 너비와 절반 너비의 차이점, 스위칭 기술 및 실제 응용 프로그램을 자세히 살펴보겠습니다. 우선, 한자 분야에서 전각과 반각의 정의는 전각자가 한 글자 위치를 차지하고, 반각자는 반자 위치를 차지한다는 것이다. 컴퓨터에서는 패스

전각과 반각은 중국어 입력 방법에서 서로 다른 두 가지 입력 상태를 나타냅니다. 전각은 각 문자가 전각 문자 위치를 차지하는 것을 의미하고, 반각은 각 문자가 반각 문자 위치를 점유한다는 것을 의미합니다. 컴퓨터를 사용하여 중국어를 입력할 때 다양한 입력 시나리오에 적응하기 위해 전자와 반자 사이를 전환해야 하는 경우가 있습니다. 다음으로, 중국어 입력에서 전각과 반각 사이를 전환하는 방법을 누구나 쉽게 익힐 수 있도록 일반적으로 사용되는 몇 가지 전각 및 반각 전환 방법을 소개합니다. 방법 1: 단축키를 사용하여 전각과 반각 사이를 전환할 수 있습니다. 대부분의 중국어 입력기 소프트웨어에서는 다음을 사용할 수 있습니다.

우리가 중국어 입력 방식을 사용할 때 전각과 반각의 두 가지 방법이 있는데 그 중 전각과 반각의 차이를 모르는 친구들이 많습니다. 전각과 반각 입력 방법으로 차이를 만드세요. 반각 상태에서는 모든 구두점을 사용할 수 있으며 공백에 대한 특별한 제한은 없습니다. 전체 너비 상태에서는 스페이스바의 기능이 변경됩니다. 전각 상태로 전환하고 스페이스바를 누르면 문자 사이의 거리가 넓어지고 이 간격은 반각 상태보다 더 뚜렷해집니다. 또한, 전각 상태에서는 영문자의 표시도 다릅니다. 반각 상태에서는 입력되는 영문자가 보통 크기로 됩니다. 그러나 전체 너비 모드로 전환하면 입력된 영문자가 굵게 표시되고 확대되는 것을 볼 수 있습니다. 전체에서

사용자가 일반적으로 텍스트를 삽입하기 위해 입력 방법을 사용할 때 문자나 기호 사이의 차이를 느낄 수 있습니다. 이는 주로 반자와 전자 사이의 전환이 다르기 때문입니다. 여기에서는 전각과 반각 간의 변환을 빠르게 구현하는 방법을 자세히 소개합니다. 창에서 전체 너비와 절반 너비 사이를 전환하기 위한 바로 가기 키 솔루션: Alt+Shift 이것은 전체 너비와 절반 너비 입력 모드 사이를 전환하는 데 가장 일반적으로 사용되는 키입니다. 중국어 입력 환경에서 이 키를 누르면 영어 모드로 전환되고, 그렇지 않으면 중국어 모드로 전환됩니다. 컴퓨터에 여러 입력 방법이 설치되어 있는 경우 이 키를 사용하여 입력 방법 간에 쉽게 전환할 수도 있습니다. 해결 방법 2: Ctrl+Shift도 전체 너비와 절반 너비 사이를 전환하는 바로 가기 키 중 하나입니다. 이 키 조합은 영어 입력 모드에서 눌려집니다

전각 공백과 반각 공백은 중국어와 일본어에서 흔히 사용되는 두 공백 문자로 조판, 텍스트 편집, 입력 방법에서 기능적 특성이 다릅니다. 이 글에서는 전각 공백과 반각 공백의 특성과 응용 시나리오를 자세히 설명하여 독자가 이 두 공백 문자를 더 잘 이해하고 사용할 수 있도록 돕습니다. 먼저 전폭공간의 특징을 이해해보자. 유니코드의 전각 공백 인코딩은 U+3000입니다. 너비는 일반적으로 중국어 조판에서 공백에 사용됩니다. 전폭 공간의 사용 시나리오는 다음과 같습니다.

현대 인터넷 시대에 우리는 컴퓨터로 텍스트를 입력하고 편집하는 경우가 많습니다. 이 과정에서 전각과 반각 사이를 전환하는 문제가 발생하는 경우가 있습니다. 전각과 반각은 문자가 차지하는 위치의 크기를 의미하며, 전각 문자는 한 문자 폭을 차지하고, 반각 문자는 문자 폭의 절반을 차지합니다. 전체 너비와 절반 너비를 올바르게 사용하는 것은 텍스트의 형식과 통일성을 보장하는 데 매우 중요합니다. 따라서 전폭과 반폭의 전환 기술을 익히는 것이 필요합니다. 먼저 전각(full-width)과 반각(half-width)의 개념을 이해해보자. 전자 문자는 일반적으로 다음을 나타냅니다.

제목: 입력 방법에서 전각 모드와 반각 모드 사이를 쉽게 전환하는 방법 일상적으로 컴퓨터를 사용할 때 다양한 입력 시나리오와 요구에 적응하기 위해 전각 모드와 반각 모드 사이를 전환해야 하는 경우가 많습니다. 전각 모드는 일반적으로 한자, 영문자, 구두점, 숫자 등을 입력하는 데 사용되는 반면, 반각 모드는 영어와 숫자를 입력하는 데 더 적합합니다. 그러나 많은 사람들은 입력 방법을 사용할 때 혼란을 겪을 수 있으며 전자와 반각 사이를 쉽게 전환하는 방법을 모릅니다. 이 문서에서는 전자 입력 방법과 반자 입력 방법 사이를 쉽게 전환하는 데 도움이 되는 몇 가지 간단한 방법을 소개합니다.
