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

Có thể thực thi kiểm tra dữ liệu trong MySQL bằng Biểu thức chính quy không?

Có, có thể thực thi kiểm tra dữ liệu trong MySQL bằng cách sử dụng biểu thức chính quy. Đầu tiên, bạn cần tạo một bảng. Sau đó, bạn cần tạo một trình kích hoạt trước khi chèn vào bảng. Tại đây, chúng tôi sẽ kiểm tra định dạng Số điện thoại.

Truy vấn để tạo bảng như sau

mysql> create table enforceDataUsingRegularExpression
   - > (
   - > yourPhoneNumber varchar(60)
   - > );
Query OK, 0 rows affected (0.59 sec)

Truy vấn để tạo trình kích hoạt như sau

mysql> DELIMITER //
mysql> CREATE TRIGGER enforce_phone_check BEFORE INSERT ON enforceDataUsingRegularExpression
   - > FOR EACH ROW
   - > BEGIN
   - > IF (NEW.yourPhoneNumber REGEXP '^(\\+?[0-9]{1,4}-)?[0-9]{3,10}$' ) = 0 THEN
   - > SIGNAL SQLSTATE '33455'
   - > SET MESSAGE_TEXT = 'Your Phone Number is incorrect';
   - > END IF;
   - > END //
Query OK, 0 rows affected (0.16 sec)
mysql> DELIMITER ;

Bây giờ hãy xem lỗi khi bạn chèn bản ghi trong bảng để thực thi kiểm tra dữ liệu trong MySQL bằng cách sử dụng biểu thức chính quy

mysql> insert into enforceDataUsingRegularExpression values("+55242-64576");
ERROR 1644 (33455): Your Phone Number is incorrect
mysql> insert into enforceDataUsingRegularExpression values("+76-WD1232221");
ERROR 1644 (33455): Your Phone Number is incorrect
Now inserting the correct data i.e. the correct phone, which is as follows:
mysql> insert into enforceDataUsingRegularExpression values("+55-1232221");
Query OK, 1 row affected (0.13 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select.

Truy vấn như sau

mysql> select *from enforceDataUsingRegularExpression;

Sau đây là kết quả

+-----------------+
| yourPhoneNumber |
+-----------------+
| +55-1232221     |
+-----------------+
1 row in set (0.00 sec)