MySQL 在没有 OR 的情况下搜索多列

标签 mysql select multiple-columns

我有一个页面根据 $_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_alocation_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/

相关文章:

php - 如何在 PHP 中按日期(今天、昨天、8 月 29 日、28 日等)对 SQL 中的 foreach 项目进行排序?

php - MySQL加入3个级联表

MySQL,在多行中搜索相同的列

HTML/CSS 等列高度

列的 Css 属性

php - ajax:没有获得值(value)

php - 如何在sql中按顺序获取数字?

c# - 我需要通过 C# 应用程序在 MySql 的一列/行中添加多个名称

sql - MYSQL Select语句Order By和Group By

MySQL:是否可以在没有表的情况下对 'fill' 进行 SELECT?