0

私は 2 つのフィールドを持つテーブルを持っています。MAC アドレス フィールドを変換するフィールドのソリューションが提供されています。

私の元の声明は次のとおりです。

SELECT  INET_NTOA(ip_address) AS myip,mymac 
FROM table1

mymac フィールドのソリューション

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 mymac  AS mac_as_int FROM table1 WHERE unique_name='test'
    ) a
) b

私の問題は、 myip フィールドが表示されないことです。myip フィールドと mymac フィールドを表示する結果を提供するスクリプトが必要なだけです。

4

1 に答える 1

0

あなたはおそらくこのようなものを探しています

SELECT INET_NTOA(inet) myip,
       CONCAT(LEFT(mac, 2),':', MID(mac,3,2),':',MID(mac,5,2),':',MID(mac,7,2),':',MID(mac,9,2),':',MID(mac,11,2)) mymac
FROM (SELECT inet, 
             LPAD(HEX(mac), 12, '0') mac
        FROM table1) t

出力:

|     MYIP |             MYMAC |
--------------------------------
| 10.0.5.9 | 00:00:49:96:02:D2 |

SQLフィドル

于 2013-05-17T08:04:23.677 に答える