我在使用IF语句中的子查询获取MySQL SELECT语句的语法时遇到了问题。在IF语句中使用子查询的MySQL SELECT语句的语法
编辑
我需要的,如果指定了特定值,包括在数据库查询的子查询。在这个特定的例子中,如果他们已经指定了Item,那么只会获取Item和Price也与特定值匹配的行。
SELECT * FROM Products WHERE Products.Color = :Colors_like
AND IF(Item = IS NOT NULL OR Item != ''
(Item = :Item AND Products.Price <= (SELECT $MaxPrice_Item FROM Lifestyle WHERE User_id = $User_id))
)
我已经包括下面的硬编码值
简化片断这正常工作:
SELECT * FROM Products WHERE Color = 'Black'
AND IF (Item = 'Dresses', 1, 0) = 1
这不起作用(如果项目=连衣裙,它应该检查价格)
SELECT * FROM Products WHERE Color = 'Black'
AND IF (Item = 'Dresses' (SELECT * FROM Products WHERE Price < '$300'), 1, 0) = 1
我试过了所有我能想到的格式,但我似乎无法让语句正常工作。
“这行不通” ---它实际上应该怎么办?查询完全被破坏,很难猜测你想表达什么。 PS:'Where价格<'$ 300''您是否真的将价格存储为'$'char字符串前缀? – zerkms 2014-11-23 23:55:17
@zerkms - 我只是澄清它应该做什么:-)(道歉,如果我不清楚) – 2014-11-23 23:58:14
它仍然不清楚。尝试用领域语言解释。喜欢:我需要选择黑色的产品...并且... PS:你还没有回答价格PPS:'IF(Item ='Dresses',1,0)= 1' - 这使得没有感。所以试图以“类似的方式”来解决它是错误的设计。 – zerkms 2014-11-23 23:59:35