Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

SQL:Biner ke Alamat IP

mysql> select inet_ntoa(conv('4333d26e', 16, 10));
+-------------------------------------+
| inet_ntoa(conv('4333d26e', 16, 10)) |
+-------------------------------------+
| 67.51.210.110                       |
+-------------------------------------+
1 row in set (0.00 sec)

Periksa apakah itu berfungsi di sana juga =)

Sunting

Masalahnya adalah inet_ntoa tampaknya diurai dari desimal strings representasi angka, bukan yang heksadesimal, atau dari integers heksadesimal . Bandingkan:

mysql> select inet_ntoa(0x4333d26e);
+-----------------------+
| inet_ntoa(0x4333d26e) |
+-----------------------+
| 67.51.210.110         |
+-----------------------+
1 row in set (0.02 sec)

mysql> select inet_ntoa('0x4333d26e');
+-------------------------+
| inet_ntoa('0x4333d26e') |
+-------------------------+
| 0.0.0.0                 |
+-------------------------+
1 row in set, 1 warning (0.00 sec)

Sunting

Ini lebih sederhana dan tampaknya berhasil juga:

SELECT INET_NTOA(CONV(ip_bin, 2, 10)) FROM log_metadata


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menemukan kemunculan kata paling populer di MySQL?

  2. Membuat ActiveRecord / Rails menggunakan kolom TIMESTAMP mysql yang sebenarnya

  3. Bagaimana cara mendapatkan ID dari beberapa baris yang disisipkan di MySQL?

  4. Kolom tidak dikenal di 'daftar bidang', tetapi kolom memang ada

  5. Bagaimana mengatur ketersediaan kamar berdasarkan hari atau bulan pekerjaan