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

bla*_*d Ψ 0 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    |
+----+-------------+-------------+-------------+-------------+
Run Code Online (Sandbox Code Playgroud)

我只想用列1,2和3的LIKE语句进行查询,以便它将使用关键字在这些列中搜索类似的数据.此外,我想使用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的情况下给我结果.

Bri*_*per 5

我认为你需要在你的OR条件周围加上括号......

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