SQL:选择存储为bigint的MAC,其中包含字符串的一部分

时间:2014-05-30 09:56:00

标签: mysql sql

我有一个包含几列的大表,其中一列是存储为UNSIGNED BIGINT的MAC地址(主键)。 我想进行查询以获取MAC包含字符串部分的行。

这是我插入行(mysql)的方式:

INSERT INTO mybigtable (mac, col2, col3) 
    VALUES (conv('0123456778AB', 16, 10), 'myval1', 'myval2') 

如何选择MAC列包含字符串'56'的行?这是我的解决方案:

SELECT * from mybigtable WHERE HEX(mac) LIKE '%56%'

我觉得这个查询性能很差,因为它必须将表的所有行转换为十六进制来比较字符串。

有更好的方法来进行此查询吗?我想有点但我不知道怎么做。我是否需要更改列的类型?我不喜欢将它存储为CHAR(12),因为它是PK并且涉及到一些FK。

提前致谢。

0 个答案:

没有答案