我有一个像下面这样的 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/