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)
----------------------------------------------------------------------------------------------------------------

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Der Unterschied zwischen voller Breite und halber Breite: 1. Der von Zeichen eingenommene Raum; 3. Der Status der Eingabemethode; 5. Die Verwendung von Systembefehlen; Ausführliche Einführung: 1. Zeichenbelegungsraum, Zeichen voller Breite belegen zwei Standardzeichenpositionen, während Zeichen halber Breite eine Standardzeichenposition einnehmen. 2. Zeichendarstellung, volle Breite bezieht sich auf ein Zeichen, das zwei Standardzeichenpositionen einnimmt ist ein chinesisches Zeichen oder andere Zeichentypen. Halbe Breite bedeutet, dass ein Zeichen eine Standardzeichenposition einnimmt, die normalerweise für englische Buchstaben, Zahlen, Symbole usw. verwendet wird.

Im täglichen Leben stoßen wir oft auf das Problem der Voll- und Halbbreite, aber nur wenige Menschen haben möglicherweise ein tiefes Verständnis für deren Bedeutung und Unterschied. Vollbreite und Halbbreite sind eigentlich Konzepte von Zeichenkodierungsmethoden und haben spezielle Anwendungen bei der Computereingabe, Bearbeitung, Schriftsatz usw. Dieser Artikel befasst sich mit den Unterschieden zwischen voller und halber Breite, Schalttechniken und realen Anwendungen. Zunächst einmal lauten die Definitionen von voller Breite und halber Breite im Bereich der chinesischen Schriftzeichen: Ein Zeichen voller Breite nimmt eine Zeichenposition ein, und ein Zeichen halber Breite nimmt eine halbe Zeichenposition ein. In einem Computer passieren

Volle Breite und halbe Breite beziehen sich auf zwei verschiedene Eingabezustände in der chinesischen Eingabemethode. Volle Breite bedeutet, dass jedes Zeichen eine Zeichenposition voller Breite einnimmt, während halbe Breite bedeutet, dass jedes Zeichen eine Zeichenposition halber Breite einnimmt. Wenn Sie einen Computer zur Eingabe von Chinesisch verwenden, müssen Sie manchmal zwischen voller und halber Breite wechseln, um sich an unterschiedliche Eingabeszenarien anzupassen. Als Nächstes stellen wir einige häufig verwendete Methoden zum Umschalten in voller Breite und halber Breite vor, damit jeder leicht lernen kann, wie man bei chinesischen Eingaben zwischen voller Breite und halber Breite wechselt. Methode 1: Verwenden Sie Tastenkombinationen, um zwischen voller und halber Breite zu wechseln. In den meisten chinesischen Eingabemethodenprogrammen können Sie diese verwenden

Wenn wir die chinesische Eingabemethode zum Tippen verwenden, gibt es zwei Möglichkeiten: Vollbreite und Halbbreite. Unter ihnen gibt es viele Freunde, die den Unterschied zwischen Vollbreite und Halbbreite nicht kennen Bei den Eingabemethoden voller und halber Breite machen Sie den Unterschied. Jedes Satzzeichen kann im Zustand halber Breite verwendet werden und es gibt keine besonderen Einschränkungen für Leerzeichen. Im Vollbildzustand ändert sich die Funktion der Leertaste. Nachdem wir in den Zustand voller Breite gewechselt und die Leertaste gedrückt haben, werden wir feststellen, dass der Abstand zwischen den Zeichen größer wird und diese Lücke deutlicher ist als im Zustand halber Breite. Darüber hinaus unterscheidet sich auch die Anzeige englischer Buchstaben im Vollbildzustand. Im Zustand halber Breite haben die getippten englischen Buchstaben die normale Größe. Sobald wir jedoch in den Vollbreitenmodus wechseln, werden wir feststellen, dass die eingegebenen englischen Buchstaben fett und vergrößert werden. im ganzen

Wenn Benutzer normalerweise Eingabemethoden zum Einfügen von Text verwenden, bemerken sie möglicherweise Unterschiede zwischen Buchstaben oder Symbolen. Dies ist hauptsächlich auf den unterschiedlichen Wechsel zwischen Zeichen halber und voller Breite zurückzuführen. Hier stellen wir Ihnen im Detail vor, wie Sie die Konvertierung zwischen voller Breite und halber Breite schnell realisieren können. Tastenkombinationslösung zum Wechseln zwischen voller und halber Breite in Fenstern: Alt+Umschalt Dies ist die am häufigsten verwendete Taste zum Wechseln zwischen Eingabemodus voller und halber Breite. In der chinesischen Eingabeumgebung wird durch Drücken dieser Taste in den englischen Modus gewechselt, andernfalls wird in den chinesischen Modus gewechselt. Wenn auf Ihrem Computer mehrere Eingabemethoden installiert sind, können Sie mit dieser Taste auch einfach zwischen den Eingabemethoden wechseln. Lösung 2: Strg+Umschalt gehört ebenfalls zu den Tastenkombinationen zum Wechseln zwischen voller und halber Breite. Diese Tastenkombination wird im englischen Eingabemodus gedrückt

Leerzeichen voller Breite und Leerzeichen halber Breite sind zwei gängige Leerzeichen im Chinesischen und Japanischen. Sie haben unterschiedliche funktionale Eigenschaften beim Satz, bei der Textbearbeitung und bei den Eingabemethoden. In diesem Artikel werden die Eigenschaften und Anwendungsszenarien von Leerzeichen voller Breite und Leerzeichen halber Breite ausführlich erläutert und den Lesern dabei geholfen, diese beiden Leerzeichen besser zu verstehen und zu verwenden. Lassen Sie uns zunächst die Eigenschaften von Leerzeichen voller Breite verstehen. Die Kodierung von Leerzeichen voller Breite in Unicode ist U+3000. Die Breite entspricht der von gewöhnlichen chinesischen Zeichen. Sie wird normalerweise für Leerzeichen im chinesischen Schriftsatz verwendet. Zu den Nutzungsszenarien für Leerzeichen in voller Breite gehören aber

Im modernen Internetzeitalter geben wir Texte häufig am Computer ein und bearbeiten sie. Bei diesem Vorgang stoßen wir manchmal auf das Problem, zwischen voller und halber Breite zu wechseln. Vollbreite und halbe Breite beziehen sich auf die Größe der von Zeichen eingenommenen Position. Zeichen voller Breite nehmen eine Zeichenbreite ein, während Zeichen halber Breite eine halbe Zeichenbreite einnehmen. Die korrekte Verwendung von voller und halber Breite ist sehr wichtig, um die Formatierung und Einheitlichkeit des Textes sicherzustellen. Daher ist es notwendig, die Umschaltfähigkeiten in voller und halber Breite zu beherrschen. Lassen Sie uns zunächst die Konzepte voller Breite und halber Breite verstehen. Zeichen in voller Breite beziehen sich im Allgemeinen auf

Titel: So wechseln Sie bei Eingabemethoden ganz einfach zwischen den Modi voller und halber Breite. Bei der täglichen Verwendung von Computern müssen wir häufig zwischen den Modi voller und halber Breite wechseln, um uns an unterschiedliche Eingabeszenarien und -anforderungen anzupassen. Der Modus „Volle Breite“ wird im Allgemeinen zur Eingabe von chinesischen Zeichen, englischen Zeichen, Satzzeichen, Zahlen usw. verwendet, während der Modus „Halbe Breite“ besser für die Eingabe von Englisch und Zahlen geeignet ist. Viele Menschen sind jedoch möglicherweise verwirrt, wenn sie Eingabemethoden verwenden, und wissen nicht, wie sie einfach zwischen voller und halber Breite wechseln können. In diesem Artikel werden einige einfache Methoden vorgestellt, mit denen Sie problemlos zwischen Eingabemethoden voller und halber Breite wechseln können.
