使用php搜索包含多个字段的整个数据库表

使用php搜索包含多个字段的整个数据库表,php,mysql,Php,Mysql,我有一个mysql数据库表,大约有15个字段。我想在整个字段中搜索用户输入的字符串。。我不想在我的查询中使用“或”来连接多个字段,因为这会减慢处理速度。有人能帮我找到替代方法吗?您可以在任意数量的字段上创建一个。性能应该还可以(比像这样的好得多) 例如: ALTER TABLE table_name ADD FULLTEXT ft_index_name (col1, col2, col3); 然后查询: SELECT * FROM table_name WHERE MATCH(col1, co

我有一个mysql数据库表,大约有15个字段。我想在整个字段中搜索用户输入的字符串。。我不想在我的查询中使用“或”来连接多个字段,因为这会减慢处理速度。有人能帮我找到替代方法吗?

您可以在任意数量的字段上创建一个。性能应该还可以(比像这样的
好得多)

例如:

ALTER TABLE table_name ADD FULLTEXT ft_index_name (col1, col2, col3);
然后查询:

SELECT * FROM table_name WHERE MATCH(col1, col2, col3) AGAINST ('search_term')

如果您需要额外的性能,请查看例如,如果您不想使用本机MySQL
FULLTEXT

的话,它可以作为本机MySQL的替代品,或者更好的方法是使用
concat
对所有15个字段进行concat,然后使用
类似的
搜索指针。大概是这样的:

select * from MyTable
where concat(col1,col2,col3,col4,col5,col6,col7,col8,col9,col11,col11,col12,col13,col14,col15)
like '%myval%';
但是,我不确定这在性能方面是否比使用OR更好。

您使用的php类: