我有一列名为:name
,类型:text
,FULLTEXT
索引
我尝试name
使用此查询在列中查找 IP 地址:
SELECT * FROM `data` WHERE MATCH(ip) AGAINST ('127.0.0.1')
但结果我得到了 0 ,它只适用于字母,而不适用于数字。如何解决?
尝试
SELECT * FROM data WHERE ip LIKE '%127.0.0.1%'
或者如果 IP 地址在名称列中,则
SELECT * FROM data WHERE name LIKE '%127.0.0.1%'
ip
字段包含什么?它是单个 IP 地址还是它们的负载?
如果只是单个地址,则不需要使用MATCH
orLIKE
或任何其他专家查询;只需使用=
. IE:
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'