我有一个页面根据 $_POST
构建了一个非常长的查询变量。我尝试在没有 MySQL 的 OR
的情况下执行此操作的原因是因为我不得不重述整个查询,只是为了在末尾更改一个小参数,这似乎是一种资源浪费。
这是我的伪查询:
SELECT * FROM names WHERE
person = '$var1' AND
place = '$var2' AND
location_a = '$var3' AND
location_b = '$var3'
如果我使用 OR
,这个又胖又丑的查询将是:
SELECT * FROM names WHERE
person = '$var1' AND
place = '$var2' AND
location_a = '$var3' OR
person = '$var1' AND
place = '$var2' AND
location_b = '$var3'
有没有办法同时搜索 location_a
和 location_b
对于 $var3
不使用OR
?
最佳答案
使用括号:
SELECT * FROM names WHERE
person = '$var1' AND
place = '$var2' AND
(
location_a = '$var3' OR location_b = '$var3'
)
其实我不明白你的问题。您不必重述整个查询。也许你显示你的代码? OR
有什么不好?只需使用括号。
关于MySQL 在没有 OR 的情况下搜索多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10390246/