2016-04-08 16 views
5

Ho una tabella con il nome "Actress" in MySQL.
voglio rimuovere tutti i caratteri numerici da colonna "name"come rimuovere i caratteri numerici nella tabella di mysql?

select * from Actress limit 5; 
+-------+---------------------+ 
| code | name    | 
+-------+---------------------+ 
| 11455 | Hanshika_Motwani_19 | 
| 11457 | Kajal_Agrwal_11  | 
| 11458 | Ileana_21   | 
| 11459 | Kaveri_Jha_11  | 
| 11462 | Kaveri_Jha_18  | 
+-------+---------------------+ 
5 rows in set (0.00 sec) 

Come posso aggiornare il mio tavolo per rimuovere i caratteri numerici nella tabella di MySQL in modo che ho potuto ottenere il risultato come qui di seguito

select * from Actress limit 5; 
+-------+---------------------+ 
| code | name    | 
+-------+---------------------+ 
| 11455 | Hanshika_Motwani_ | 
| 11457 | Kajal_Agrwal_  | 
| 11458 | Ileana_21   | 
| 11459 | Kaveri_Jha_   | 
| 11462 | Kaveri_Jha_   | 
+-------+---------------------+ 
+0

I numeri appaiono sempre alla fine della colonna 'name'? –

+0

no potrebbe essere nel mezzo della stringa –

+0

Possibile duplicato di [Rimozione di numeri da string in mysql] (http://stackoverflow.com/questions/13855053/removing-numbers-from-string-in-mysql) –

risposta

1

Non sembra molto bello, ma funziona. Rimuove qualsiasi cifra dalla stringa

SELECT 
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE (
    REPLACE(REPLACE(REPLACE(REPLACE('Hallo_1234567890_99','0','') 
    ,'1',''),'2',''),'3',''),'4',''),'5',''),'6',''),'7',''),'8',''),'9',''); 


update Actress 
SET name = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE (
     REPLACE(REPLACE(REPLACE(REPLACE(name,'0','') 
     ,'1',''),'2',''),'3',''),'4',''),'5',''),'6',''),'7',''),'8',''),'9',''); 

se si usa MariaDB è possibile utilizzare regex_replace:

update Actress 
set name = REGEXP_REPLACE(name,'[0-9]',''); 

Esempio

MariaDB [(none)]> SELECT REGEXP_REPLACE('A1B2C44','[0-9]',''); 
+--------------------------------------+ 
| REGEXP_REPLACE('A1B2C44','[0-9]','') | 
+--------------------------------------+ 
| ABC         | 
+--------------------------------------+ 
1 row in set (0.00 sec) 

MariaDB [(none)]> 
2

Ehi ho una risposta che ho eseguito sotto le query e questo ha risolto il mio problema per rimuovere tutte le cifre numeriche dalla tabella di mysql

update Actress SET name = REPLACE(name, '1', ''); 
update Actress SET name = REPLACE(name, '2', ''); 
update Actress SET name = REPLACE(name, '3', ''); 
update Actress SET name = REPLACE(name, '4', ''); 
update Actress SET name = REPLACE(name, '5', ''); 
update Actress SET name = REPLACE(name, '6', ''); 
update Actress SET name = REPLACE(name, '7', ''); 
update Actress SET name = REPLACE(name, '8', ''); 
update Actress SET name = REPLACE(name, '9', ''); 
update Actress SET name = REPLACE(name, '0', ''); 
+2

Un po 'di forza bruta e draconiana, ma ha fatto il lavoro. –

+0

10 aggiornamenti per ogni riga - molto difficile –

0

Prova SELEZIONA prima di eseguire il comando di aggiornamento. La funzione LOCATE interna dà la prima occorrenza di "" e l'esterno Locate ti dà la seconda occorrenza. SINISTRA ti porta tutti i personaggi fino alla seconda occorrenza di "". Non ho provato questo quindi spero che funzioni.

SELECT LEFT(name,LOCATE('_',name,LOCATE('_',name)+1)) as name FROM Actress WHERE 1 


UPDATE Actress SET name=LEFT(name,LOCATE('_',name,LOCATE('_',name)+1)) WHERE 1 
Problemi correlati