Mysql
 sql >> Database >  >> RDS >> Mysql

Trova valori che non contengono numeri in MySQL

Se devi restituire tutte le righe che non contengono numeri, quanto segue potrebbe essere d'aiuto.

A rigor di termini, i numeri possono essere rappresentati da parole e altri simboli, ma per questo articolo “numero” significa semplicemente “cifra numerica”. Quindi stiamo trovando valori che non contengono cifre numeriche.

Esempio

Supponiamo di avere una tabella chiamata Products con i seguenti dati nel suo ProductName colonna:

SELECT ProductName 
FROM Products;

Risultato:

+-------------------------------------+
| ProductName                         |
+-------------------------------------+
| Left handed screwdriver             |
| Right handed screwdriver            |
| Long Weight (blue)                  |
| Long Weight (green)                 |
| Smash 2000 Sledge Hammer            |
| Chainsaw (Includes 5 spare fingers) |
| Straw Dog Box                       |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Questa colonna contiene dati carattere, ma alcune righe contengono numeri all'interno di tali dati carattere (anche se non sono archiviati come tipo numerico).

Possiamo utilizzare la seguente query per restituire solo quelle righe che non contengono cifre numeriche:

SELECT ProductName 
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';

Risultato:

+--------------------------+
| ProductName              |
+--------------------------+
| Left handed screwdriver  |
| Right handed screwdriver |
| Long Weight (blue)       |
| Long Weight (green)      |
| Straw Dog Box            |
+--------------------------+

Come previsto, vengono restituite solo le righe che non contengono numeri.

Qui abbiamo usato NOT REGEX di MySQL funzione per trovare tutte le righe che corrispondono a un modello. Il modello comprende tutte le cifre numeriche da 0 a 9 , più qualsiasi altro carattere.

Questo potrebbe anche essere scritto in questo modo:

SELECT ProductName 
FROM Products
WHERE NOT (ProductName REGEXP '[0-9]+');

Risultato:

+--------------------------+
| ProductName              |
+--------------------------+
| Left handed screwdriver  |
| Right handed screwdriver |
| Long Weight (blue)       |
| Long Weight (green)      |
| Straw Dog Box            |
+--------------------------+