我正在尝试在数据库中搜索Mac地址...并遇到了很多麻烦。
SELECT
devices.mac AS dev_mac
WHERE devices.mac LIKE '00:00:11:00:99:1B'
我也尝试将CAST(devices.mac AS varchar) AS dev_mac
到CAST
作为varchar,但仍然无法执行搜索。
我也尝试过ILIKE
。似乎没有任何作用。
还尝试替换:
,什么也没有。
像这样保持错误:
ERROR: operator does not exist: macaddr ~~ unknown
ERROR: operator does not exist: macaddr ~~* unknown
我在做什么错?如何正确搜索macaddr
数据类型?
答案 0 :(得分:0)
出什么问题了?如果将其投射到VARCHAR
,它将立即起作用:
create table m1 (
id int,
mac1 macaddr
);
insert into m1 (id, mac1) values (1, '08:00:2b:01:02:03');
insert into m1 (id, mac1) values (2, '08:00:2b:01:02:04');
select id, cast(mac1 as varchar)
from m1
where cast(mac1 as varchar) like '%4'
结果:
id mac1
------------------------------
2 08:00:2b:01:02:04
答案 1 :(得分:0)
在您的WHERE
子句中,您需要将CAST
字段macaddr
移至varchar
,然后可以在其上使用任何字符串比较运算符(LIKE
,=
,...)。
赞:
SELECT mac
FROM devices
WHERE CAST(mac as varchar) LIKE '00:00:11:00:99:1B'