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

Truy vấn MySQL để sao chép địa chỉ IP từ cột varchar sang số nguyên trong cùng một bảng?

Đối với điều này, bạn có thể sử dụng INET_ATON (). Trước tiên, hãy để chúng tôi tạo -

mysql> create table DemoTable1404
   -> (
   -> IpAddress varchar(40)
   -> );
Query OK, 0 rows affected (1.02 sec)

Chèn một số bản ghi vào bảng bằng cách sử dụng chèn -

mysql> insert into DemoTable1404 values('192.168.120.0');
Query OK, 1 row affected (0.43 sec)
mysql> insert into DemoTable1404 values('192.168.120.20');
Query OK, 1 row affected (0.60 sec)
mysql> insert into DemoTable1404 values('224.0.0.0');
Query OK, 1 row affected (0.42 sec)

Hiển thị tất cả các bản ghi từ bảng bằng select -

mysql> select * from DemoTable1404;

Điều này sẽ tạo ra kết quả sau -

+----------------+
| IpAddress      |
+----------------+
| 192.168.120.0  |
| 192.168.120.20 |
| 224.0.0.0      |
+----------------+
3 rows in set (0.00 sec)

Sau đây là truy vấn để sao chép địa chỉ IP từ cột varchar sang số nguyên trong cùng một -

mysql> select inet_aton(IpAddress) from DemoTable1404;

Điều này sẽ tạo ra kết quả sau -

+----------------------+
| inet_aton(IpAddress) |
+----------------------+
|           3232266240 |
|           3232266260 |
|           3758096384 |
+----------------------+
3 rows in set (0.00 sec)

Không, hãy để chúng tôi chứng minh rằng chuyển đổi có thành công hay không -

mysql> select inet_ntoa('3232266240');

Điều này sẽ tạo ra kết quả sau -

+-------------------------+
| inet_ntoa('3232266240') |
+-------------------------+
| 192.168.120.0           |
+-------------------------+
1 row in set (0.27 sec)