首页 文章

PostgreSQL - 可以't Search (LIKE and ILIKE) a column with ' macaddr'类型

提问于
浏览
0

我正在尝试在我的数据库中搜索Mac地址......并遇到了一些麻烦 .

SELECT

    devices.mac AS dev_mac

WHERE devices.mac LIKE '00:00:11:00:99:1B'

我也尝试 CAST(devices.mac AS varchar) AS dev_macCAST 作为varchar但仍然无法执行搜索 .

我也试过 ILIKE . 似乎没有任何工作 .

也试过更换 : ,没什么 .


继续得到这样的错误:

ERROR:  operator does not exist: macaddr ~~ unknown
ERROR:  operator does not exist: macaddr ~~* unknown

我究竟做错了什么?如何正确搜索 macaddr 数据类型?

2 回答

  • 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
    
  • 0

    在你 WHERE 子句中,你需要 CAST macaddr 字段到 varchar ,然后你可以使用任何字符串比较运算符( LIKE= ,...) .

    喜欢 :

    SELECT mac 
    FROM devices
    WHERE CAST(mac as varchar) LIKE '00:00:11:00:99:1B'
    

相关问题