我有一个名为name
的列,输入:text
,FULLTEXT
索引
我尝试使用此查询在name
列中找到一个IP地址:
SELECT * FROM `data` WHERE MATCH(ip) AGAINST ('127.0.0.1')
但是我得到了0,结果只有字母,数字却没有。如何解决?
答案 0 :(得分:0)
试
SELECT * FROM data WHERE ip LIKE '%127.0.0.1%'
或者如果ip地址在名称列中,则为
SELECT * FROM data WHERE name LIKE '%127.0.0.1%'
答案 1 :(得分:0)
ip
字段包含哪些内容?它是单个IP地址还是它们的负载?
如果它只是一个地址,则您无需使用MATCH
或LIKE
或任何其他专家查询;只需使用=
。即:
SELECT * FROM data WHERE ip = '127.0.0.1'
如果每个记录中有多个IP地址,我建议您考虑将其拆分为单独的交叉引用表,因为当您需要执行此类搜索查询时,它会使事情变得更容易管理。然后,答案再次回复到只使用=
,并在IP表上加入。
SELECT * FROM data d
INNER JOIN ipAddresses i on i.dataID=d.id
WHERE i.ip = '127.0.0.1'