sql >> Databasteknik >  >> RDS >> Mysql

Hitta värden som inte innehåller siffror i MySQL

Om du behöver returnera alla rader som inte innehåller några siffror kan följande vara till hjälp.

Strängt taget kan siffror representeras av ord och andra symboler, men för den här artikeln betyder "nummer" helt enkelt "numerisk siffra". Så vi hittar värden som inte innehåller några numeriska siffror.

Exempel

Anta att vi har en tabell som heter Products med följande data i dess ProductName kolumn:

SELECT ProductName 
FROM Products;

Resultat:

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

Den här kolumnen innehåller teckendata, men vissa rader innehåller siffror inom dessa teckendata (även om de inte lagras som en numerisk typ).

Vi kan använda följande fråga för att returnera bara de rader som inte innehåller några numeriska siffror:

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

Resultat:

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

Som förväntat returneras endast de rader som inte innehåller siffror.

Här använde vi MySQL:s NOT REGEX funktion för att hitta alla rader som matchade ett mönster. Mönstret omfattar alla numeriska siffror från 0 till 9 plus alla andra tecken.

Detta kan också skrivas så här:

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

Resultat:

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

  1. Referensvärde för seriell kolumn i en annan kolumn under samma INSERT

  2. Varför ska du lära dig PostgreSQL?

  3. Hur man skickar e-post från MySQL 5.1

  4. EXCEPT körs snabbare än en JOIN när tabellkolumnerna är desamma