嵌套的SQL AND或语句失败。我的错在哪里?

嵌套的SQL AND或语句失败。我的错在哪里?,sql,Sql,我想得到纬度在x和y之间或者地址等于xyz的数据集。但这失败了: ... Running query: SELECT title,description,adress,likesAmount,price,hasVideo,thumbnail,colorId, colorId2, colorId3,conditionId,materialId, materialId2, materialId3 ,verified,classic,subcategoryId,categor

我想得到纬度在x和y之间或者地址等于xyz的数据集。但这失败了:

... 
 Running query: 

    SELECT 
    title,description,adress,likesAmount,price,hasVideo,thumbnail,colorId, colorId2, colorId3,conditionId,materialId, materialId2, materialId3 ,verified,classic,subcategoryId,categoryId,dateUpdatedInt,brandId,userId,tblAddID,timeCreated,timeUpdated,isSold, soldToUserID            
    FROM 10299_12188_tblAdds 
    Where soldToUserID=0  
    AND (price >= null AND price <= null) AND (latitude >= 0 AND latitude <= 0) OR (adress = null) AND (longitude >= 0 AND longitude <= 0) OR (adress = null) AND (dateUpdatedInt >= null) AND (classic = null) AND (conditionId = null) AND (verified = null) AND (categoryId = null) AND (subcategoryId = null OR subcategoryId = null OR subcategoryId = null)  AND (materialId = null OR materialId2 = null OR materialId3 = null OR materialId = null OR materialId2 = null OR materialId3 = null OR materialId = null OR materialId2 = null OR materialId3 = null)  AND (brandId = null OR brandId = null OR brandId = null)  ORDER BY price ASC LIMIT null, null

。。。
正在运行的查询:
挑选
标题、描述、地址、likesAmount、price、hasVideo、缩略图、colorId、colorId 2、colorId 3、conditionId、materialId、materialId 2、materialId 3、verified、classic、Subcategory Id、categoryId、DateUpdateId、brandId、userId、TbladId、timeCreated、timeUpdated、IsSoldTouseId
从10299到12188
其中soldToUserID=0
和(price>=null,price=0,纬度=0,经度=null)和(classic=null)和(conditionId=null)和(verified=null)和(categoryId=null)和(subcategoryId=null或subcategoryId=null或subcategoryId=null)以及(materialId=null或materialId=null或materialId=null或materialId=null或materialId=null或materialId=null或materialId=null或materialId=null或materialId=null)和(brandId=null或brandId=null或brandId=null)按价格订购ASC限额null、null
我的错在哪里


谢谢!

这是我的尝试,我不确定这些语句在没有更多上下文的情况下为您做了什么。
(纬度>=0和纬度这是我的尝试,我不确定这些语句在没有更多上下文的情况下为您做了什么。
(latitude>=0和latitude您需要更改此部分,因为现在您更新了完整的查询,可能还有其他部分:

  AND (
        latitude >= 0
        AND latitude <= 0
    )
    OR (adress = null)
    AND (
        longitude >= 0
        AND longitude <= 0
    )
    OR (adress = null)
和(
纬度>=0
纬度=0

经度=0,纬度=0,经度您需要更改此部分,因为现在您更新了完整查询,可能还需要其他部分:

  AND (
        latitude >= 0
        AND latitude <= 0
    )
    OR (adress = null)
    AND (
        longitude >= 0
        AND longitude <= 0
    )
    OR (adress = null)
和(
纬度>=0
纬度=0

经度=0,纬度=0,经度根据您在这里提出的问题,纬度和地址检查的WHERE子句看起来如何@x和@y是数值:

AND 
(
    (latitude BETWEEN @x AND @y) 
    OR 
    (adress = 'xyz') 
)
WHERE子句中的其他内容也需要修复。 and和OR未正确分组。 例如,空检查将如下所示

且价格不为空

而不是


和(price>=null和price根据您在此处提出的问题,纬度和地址检查的WHERE子句看起来如何@x和@y是数值:

AND 
(
    (latitude BETWEEN @x AND @y) 
    OR 
    (adress = 'xyz') 
)
WHERE子句中的其他内容也需要修复。 and和OR未正确分组。 例如,空检查将如下所示

且价格不为空

而不是


和(price>=null和price为什么失败(错误代码或根本不工作)以及您使用的数据库是什么?除了您没有告诉我们“这失败”的实际含义,或者我们自己也没有办法运行此代码之外,还有一个事实,即这是您的代码,除了括号外,没有任何内容-
(())(())
-据我统计,这是4个打开,6个关闭。因此,这要么是我们必须猜测的更大查询的一部分,要么是一个基本语法错误。
price>=null
比较结果为unknown,这不是真的。这意味着不会返回任何行。您需要第二级括号来括住前两个or子句。当您混合使用NDs和ORs,很难看到首先评估的是什么。因此,不要使用“A或B和C”,而是使用“(A或B)和C”或“A或(B和C)”,无论需要哪一个,它为什么失败(错误代码或根本不工作)以及您使用的是什么数据库?除了您没有告诉我们什么“这失败”之外实际上,这意味着,我们自己也没有办法运行这段代码,还有一个事实,这段代码除了括号外,什么都去掉了-
(())(())
-据我统计,这是4个打开,6个关闭。因此,这要么是我们必须猜测的更大查询的一部分,要么是一个基本语法错误。
price>=null
比较结果为unknown,这不是真的。这意味着不会返回任何行。您需要第二级括号来括住前两个or子句。当您混合使用NDs和ORs,很难看到首先计算的是什么。因此,不要使用“A或B和C”,而是使用“(A或B)和C”或“A或(B和C)”,无论需要哪一种,您都是正确的。您是WelcomeHanks,您是正确的。欢迎您
(纬度>=0和纬度=0
这是我最初的想法,但它是<=意味着值小于或等于0,同时它必须小于0(或等于)和大于零(或等于)-AND AND OR的计算机含义与英语含义不同我现在明白了,感谢您花时间解释这一点!
(纬度>=0,纬度=0
这是我最初的想法,但它是<=意义值小于或0,同时它必须小于0(或等于)且大于零(或同等)-AND和or的计算机含义与英语含义不同我现在明白了,感谢您花时间解释这一点!