Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để chỉ chọn các giá trị không phải là 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, chúng ta hãy tạo một bảng. 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 trong bảng bằng lệnh chèn. Truy vấn như sau

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ả các bản ghi từ bảng bằng cách sử dụng một câu lệnh chọn. Truy vấn như sau

mysql> select *from SelectNonNumericValue;

Sau đây là kết quả

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

Đây là truy vấn để chọn các giá trị không phải số

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

Sau đây là kết quả 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)