Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách chọn chỉ giá trị không phải số từ cột varchar trong MySQL?


Bạn cần sử dụng REGEXP cho việc này. Cú pháp như sau:

SELECT * FROM yourTableName WHERE yourColumnName REGEXP '[a-zA-Z]';

Để hiểu khái niệm, hãy tạo một bảng. Câu truy vấn tạo bảng như sau:

mysql> create table SelectNonNumericValue 
    -> ( 
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    -> UserId varchar(100) 
    -> ); 
Query OK, 0 rows affected (0.58 sec)

Chèn một số bản ghi vào bảng bằng lệnh insert:

mysql> insert into SelectNonNumericValue(UserId) values('123John'); 
Query OK, 1 row affected (0.12 sec) 
mysql> insert into SelectNonNumericValue(UserId) values('58475Carol98457Taylor24'); 
Query OK, 1 row affected (0.52 sec) 
mysql> insert into SelectNonNumericValue(UserId) values('199575Sam124'); 
Query OK, 1 row affected (0.14 sec) 
mysql> insert into SelectNonNumericValue(UserId) values('Mike2456'); 
Query OK, 1 row affected (0.14 sec) 
mysql> insert into SelectNonNumericValue(UserId) values('1000'); 
Query OK, 1 row affected (0.12 sec) 
mysql> insert into SelectNonNumericValue(UserId) values('1001'); 
Query OK, 1 row affected (0.21 sec) 
mysql> insert into SelectNonNumericValue(UserId) values('10293Bob'); 
Query OK, 1 row affected (0.13 sec) 
mysql> insert into SelectNonNumericValue(UserId) values('David'); 
Query OK, 1 row affected (0.30 sec) 
mysql> insert into SelectNonNumericValue(UserId) values('2456'); 
Query OK, 1 row affected (0.15 sec)

Hiển thị tất cả bản ghi từ bảng bằng câu lệnh select:

mysql> select * from SelectNonNumericValue;

Kết quả đầu ra:

+----+-------------------------+ 
| Id | UserId                  | 
+----+-------------------------+ 
| 1  | 123John                 | 
| 2  | 58475Carol98457Taylor24 | 
| 3  | 199575Sam124            | 
| 4  | Mike2456                | 
| 5  | 1000                    | 
| 6  | 1001                    | 
| 7  | 10293Bob                | 
| 8  | David                   | 
| 9  | 2456                    | 
+----+-------------------------+ 
9 rows in set (0.00 sec)

Câu truy vấn chọn giá trị không phải số:

mysql> select * from SelectNonNumericValue WHERE UserId REGEXP '[a-zA-Z]';

Kết quả đầu ra bỏ qua các giá trị số:

+----+-------------------------+ 
| Id | UserId                  | 
+----+-------------------------+ 
| 1  | 123John                 | 
| 2  | 58475Carol98457Taylor24 | 
| 3  | 199575Sam124            | 
| 4  | Mike2456                | 
| 7  | 10293Bob                | 
| 8  | David                   | 
+----+-------------------------+ 
6 rows in set (0.00 sec)