0

我有一个包含两个字段的表,我已经为转换 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 |

SQLFiddle

于 2013-05-17T08:04:23.677 回答