0

我有一列名为:name,类型:textFULLTEXT索引

我尝试name使用此查询在列中查找 IP 地址:

SELECT * FROM `data` WHERE  MATCH(ip) AGAINST ('127.0.0.1')

但结果我得到了 0 ,它只适用于字母,而不适用于数字。如何解决?

4

2 回答 2

0

尝试 SELECT * FROM data WHERE ip LIKE '%127.0.0.1%'

或者如果 IP 地址在名称列中,则 SELECT * FROM data WHERE name LIKE '%127.0.0.1%'

于 2013-01-11T15:40:50.030 回答
0

ip字段包含什么?它是单个 IP 地址还是它们的负载?

如果只是单个地址,则不需要使用MATCHorLIKE或任何其他专家查询;只需使用=. 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'
于 2013-01-11T15:48:57.533 回答