php - MySQL中如何在使用LIKE查询语句的同时使用OR语句

标签 php mysql search search-engine sql-like

我正在尝试创建一个很好的小搜索语句,根据返回的内容使用不同的搜索词搜索多个字段。如果找不到一个搜索词,我基本上会设置一个搜索顺序,然后尝试下一个搜索词。但是我使用 WHERE 子句来单独搜索一种类型的数据。目前我收到了一些奇怪的返回结果,因为我认为我的顺序不正确,似乎我的 WHERE 子句被忽略了。

这是我的声明(我使用的是 PHP):

mysql_query("SELECT * FROM item AS i LEFT JOIN country AS c ON i.country_id = c.country_id WHERE i.item_status = 'active' AND (i.item_name LIKE '%".$_SESSION['item']."%') OR i.item_description LIKE '%".$_SESSION['description']."%' OR i.item_name LIKE '%".$_SESSION['description']."%' "); 

提前致谢。

最佳答案

为什么不使用全文搜索功能?

需要更改表结构以创建全文搜索索引。

ALTER TABLE item ADD FULLTEXT (item_name, item_description);

然后你的查询变成:

mysql_query("
SELECT * FROM item AS i LEFT JOIN country AS c ON i.country_id = c.country_id 
WHERE i.item_status = 'active' AND 
MATCH (i.item_name, i.item_description)
AGAINST (" . $_SESSION['item'] . " " . $_SESSION['description'] . ");
");

简单、准确、快速。

关于php - MySQL中如何在使用LIKE查询语句的同时使用OR语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3876811/

相关文章:

mysql - 仅返回年份和月份的 Cast 函数

mysql - 我正在使用 group by 关键字,但它将 'h' 和 'H' 分组为一个

excel - 如何在Excel VBA中修复 "Run-time error ' 380'?

php - mysql 和 php FULLTEXT 搜索做得更多,但做得不多?

PHP/Ajax "Vary: X-Requested-With"对我不起作用!

php - 从 2 表中选择并进行排序

php - 使用 JS/PHP/MySQL 检查新内容?

PHP For Loop 循环遍历数组并将当前数组项插入sql数据库,仅插入一条记录

mysql - chown : changing ownership of '' ": Input/output error

php - 如何防止 "space"搜索 MySQL 数据库?