我在使用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