我有一个像下面的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的情况下给我结果.
我认为你需要在你的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)