Php 如何使用MATCH()对()搜索数字

Php 如何使用MATCH()对()搜索数字,php,mysql,Php,Mysql,我有一个列名为:name,类型:text,FULLTEXT索引 我尝试通过以下查询在name列中查找IP地址: SELECT * FROM `data` WHERE MATCH(ip) AGAINST ('127.0.0.1') 但结果我得到了0,它只对字母有效,对数字无效。如何修复它?试试看 从ip地址为“%127.0.0.1%”的数据中选择* 或者,如果ip地址位于“名称”列中,则 ip字段包含什么?它是一个IP地址还是一堆IP地址 如果只是一个地址,您不需要使用MATCH或LIKE或任

我有一个列名为:
name
,类型:
text
FULLTEXT
索引

我尝试通过以下查询在
name
列中查找IP地址:

SELECT * FROM `data` WHERE  MATCH(ip) AGAINST ('127.0.0.1')
但结果我得到了0,它只对字母有效,对数字无效。如何修复它?

试试看
从ip地址为“%127.0.0.1%”的数据中选择*

或者,如果ip地址位于“名称”列中,则
ip
字段包含什么?它是一个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'

是否有一个名为
ip
的列,或者您正在
name
中查找该列?您能否更清楚地显示原始数据?是否大多数行中都包含
127.0.0.1
?如果结果集超过正在搜索的表的一半,则不会返回任何内容。尝试使用搜索。这不是使用全文的方式。请使用PHP进行搜索。更快。比试图让sql做任何事情都容易…虽然它肯定会工作,但我担心它可能会非常慢,与支持全文索引的查询相比。像
这样在搜索字符串开头使用
%
的查询必须搜索整个数据库以查找所有匹配的记录。这就是他们行动缓慢的原因。您可以在一个小表上进行查询,但随着数据量的增加,查询速度会越来越慢。