"="和 "LIKE"的 php mysql 查询

标签 php mysql

我有一个像下面这样的 mysql 表;

+----+-------------+-------------+-------------+-------------+
| Sl |   Column1   |   Column2   |   Column3   |   Column4   |
+----+-------------+-------------+-------------+-------------+
| 1  |   Data1A    |   Data2A    |   Data3A    |   xxxxxx    |
+----+-------------+-------------+-------------+-------------+
| 2  |   Data1B    |   Data2B    |   Data3B    |   yyyyyy    |
+----+-------------+-------------+-------------+-------------+
| 3  |   Data1C    |   Data2C    |   Data3C    |   xxxxxx    |
+----+-------------+-------------+-------------+-------------+
| 4  |   Data1D    |   Data2D    |   Data3D    |   yyyyyy    |
+----+-------------+-------------+-------------+-------------+
| 5  |   Data1E    |   Data2E    |   Data3E    |   xxxxxx    |
+----+-------------+-------------+-------------+-------------+

我只想用 LIKE 语句对第 1、2 和 3 列进行查询,以便它会在这些列中使用关键字搜索相似的数据。此外,我想使用 column4 中的数据过滤结果,这意味着,我希望特权过滤掉特定于 col4 的结果,xxxxxx 或 yyyyyy。

我做了一个语法 $query = "SELECT * FROM table WHERE Column1 LIKE'%$keyword%' OR Column2 LIKE'%$keyword%' OR Column3 LIKE'%$keyword%' AND Column4 = 'xxxxxx'";

但这行不通,我的语法$query = "SELECT * FROM table WHERE Column1 LIKE'%$keyword%' AND Column4 = 'xxxxxx'";运作良好。

但我也想检查 col2 和 col3 的相似之处。但它会在不过滤 col4 的情况下给我结果。

最佳答案

我认为您需要像这样将OR 条件括起来...

SELECT * FROM table WHERE
 (Column1 LIKE'%$keyword%' OR Column2 LIKE'%$keyword%' OR Column3 LIKE'%$keyword%') AND Column4 = 'xxxxxx';

关于 "="和 "LIKE"的 php mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5328341/

相关文章:

php - mysql_query() 和 mysql_result() 有什么区别?

Php Mysql 在两个日期之间搜索

asp.net - .net mvc (MySQL) 的 sessionState 问题

php - 通过 PHP 表单在数据库中插入值

php - 在 codeigniter 中我如何检查更新?

php - PHP/Ajax匿名函数,迭代会导致错误? +如何在使用Ajax时显示标准PHP错误

php - Eloquent ORM - 更新和删除不起作用

php - 从 Mysql 创建嵌套数组

php - Laravel 功能测试与区域设置

database - 在服务器上创建MySQL数据库