我在使用 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 语句搜索一列的多个值。
最佳答案
having 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"
关于MYSQL 有 with Or 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23173170/