MYSQL有或者语句

时间:2014-04-19 17:26:09

标签: mysql having

我在使用select语句时遇到了一些麻烦。看到我的代码,为简洁起见,我删除了不重要的元素。

   $sql = "SELECT … column names … (calculation for distance)… as distance 
   FROM table 
   WHERE col1 = 'value1' AND col2 = 'value2' HAVING distance < 1

以上代码完美无缺。但是,当我尝试添加OR语句,因为我希望另一列搜索多个值时,似乎与查询冲突。它没有HAVING子句但是如果删除则丢失了搜索选项。我收到一个错误,指出在更改为下面的代码时,它不是正确的语法。

   $sql = "SELECT … column names … (calculation for distance)… as distance 
   FROM table 
   WHERE col1 = 'value1' AND col2 = 'value2' HAVING distance < 1 
   OR col1 = 'value1' AND col2 = 'a different value' HAVING distance < 1

对此有任何想法,我不确定冲突是什么。也许有一种更好的方法可以使用OR语句搜索一列的多个值。

2 个答案:

答案 0 :(得分:1)

by by子句需要在最后

所以

   $sql = "SELECT … column names … (calculation for distance)… as distance 
   FROM table 
   WHERE col1 = 'value1' AND col2 IN ('value2' , 'a different value')
   HAVING distance < 1"

答案 1 :(得分:0)

如果没有sqlfiddle或整个sql查询,很难给出一个好的答案,但是:

   SELECT … column names … (calculation for distance)… as distance 
   FROM table 
   WHERE (col1 = 'value1' AND col2 = 'value2' OR col1 = 'value1' AND col2 = 'a different value')
   HAVING distance < 1