PHP/MySQL 搜索

标签 php mysql mysqli

我有一个包含 4 个文本字段的表,我当前正在使用

进行搜索
WHERE `$field` LIKE '%$value%'

直接匹配每个字段并按字段匹配的数量对结果进行排序。这是我编写它的最有效的方法(因为我的经验极其有限,但我意识到这不是用户界面最有效的方法。

我只是想知道要采取什么方向来创建更加用户友好的搜索语句。我一直在阅读有关不同类型的表搜索的信息,但我很困惑哪种方法最适合我的表。

搜索表单使用全部 4 个字段,只需填写一个字段,我想按相关性排序,但这是实现的。我不想因为拼写错误等原因获得完全匹配。

这是我正在使用的表格:

MySQL>EXPLAIN `so_customer_isam`;

-

Type: MyISAM
Collation: UTF8_bin
Primary Key: `id`

-

+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int(11)     | NO   | PRI | NULL    | auto_increment |
| last_name  | varchar(35) | NO   |     | NULL    |                |
| first_name | varchar(35) | NO   |     | NULL    |                |
| company    | varchar(35) | YES  |     | NULL    |                |
| phone      | varchar(35) | NO   |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+

最佳答案

如果您在mysql中使用全文搜索,请尝试http://sphinxsearch.com/ 。这将为您的首选数据建立索引,然后您可以对该索引进行全文搜索。

或者您可以使用elasticsearch ,一个强大的搜索/索引引擎即服务。这是当今流行的搜索服务。

我不建议你在mysql上做全文。通过尝试使用上述技术,您还可以发展您的技能。

关于PHP/MySQL 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21121156/

相关文章:

php - CodeIgniter 错误 - 在 null 上调用成员函数

php - 分析此日期时间结果并导出 Laravel 中的日期

php - 在 PHP 中验证后数据未插入数据库

c# - 如何使用 MySQL Connector for .NET 或 Dapper 从 SHOW PROCESSLIST 获取行?

php - 如何向数据库中的特定用户添加积分?

php - 使用登录调用未定义的函数 mysql_query()

php - 将 AJAX 实现到具有多个选择的 PHP 页面中

php - 剥离未闭合的正则表达式 <

使用多个 AND 运算符的 Php MySql 语句

php - PHP中将mysql查询结果保存到HTML文件