如何使用MATCH()AGAINST()搜索数字

时间:2013-01-11 15:36:06

标签: php mysql

我有一个名为name的列,输入:textFULLTEXT索引

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

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

但是我得到了0,结果只有字母,数字却没有。如何解决?

2 个答案:

答案 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​​地址还是它们的负载?

如果它只是一个地址,则您无需使用MATCHLIKE或任何其他专家查询;只需使用=。即:

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'