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

Mysql mengonversi int ke MAC

Dengan asumsi bahwa Anda telah menyimpan alamat MAC dengan menekan semua pemisah dan mengubah nomor HEX yang dihasilkan menjadi int, konversi dari int ini ke alamat MAC yang dapat dibaca manusia adalah:

function int2macaddress($int) {
    $hex = base_convert($int, 10, 16);
    while (strlen($hex) < 12)
        $hex = '0'.$hex;
    return strtoupper(implode(':', str_split($hex,2)));
}

Fungsi ini diambil dari http://www.onurguzel .com/storeing-mac-address-in-a-mysql-database/

Versi MySQL untuk fungsi ini:

delimiter $$
create function itomac (i BIGINT)
    returns char(20) 
    language SQL
begin
    declare temp CHAR(20);
    set temp = lpad (hex (i), 12, '0');
    return concat (left (temp, 2),':',mid(temp,3,2),':',mid(temp,5,2),':',mid(temp,7,2),':',mid(temp,9,2),':',mid(temp,11,2));
end;
$$
delimiter ;

Anda juga dapat melakukannya langsung di SQL, seperti ini:

select
    concat (left (b.mh, 2),':',mid(b.mh,3,2),':',mid(b.mh,5,2),':',mid(b.mh,7,2),':',mid(b.mh,9,2),':',mid(b.mh,11,2))
from (
    select lpad (hex (a.mac_as_int), 12, '0') as mh
    from (
        select 1234567890 as mac_as_int
    ) a
) b


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Pilih GABUNG 3 Tabel

  2. Cari array posting dalam nilai kolom yang dipisahkan koma

  3. Beberapa Klausa ATAU di MySQL

  4. Tidak dapat memulai server MySQL - Proses kontrol keluar dengan kode kesalahan

  5. Cara Meningkatkan MySQL 5.5 ke 5.6 di Ubuntu 14.04