我試圖在我從YouTube視頻中學到的mySQL查詢中執行此IF語句。我不太確定發生了什麼問題。我得到以下的mysql錯誤:這個mySQL IF語句有什麼問題?
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF(Cuisine != 'Cuisine', WHERE Cuisine='Cuisine') AS ORDER BY restaurantID' at line 2
好吧,對於缺乏細節抱歉。讓我再解釋一下。
在我的頁面上,我有一個HTML表單,其中有3個下拉菜單,用作「過濾器」。其中一個「過濾器」的默認選項是美食,其作爲標題,如果沒有更改,則意味着用戶不希望將美食作爲過濾器用於搜索。然而,如果它改變爲'西方',那麼顯然用戶想要使用它。
現在,上述問題很容易解決,因爲在上述場景中一次只有一個過濾器。但是,當一次使用多個過濾器時,這是對我來說變得複雜的地方,我不知道如何解決這個問題。
我的解決方案是去搜索谷歌在mySQL中的某種IF語句。我看過這段視頻(這可能相當不錯,但是因爲當時我很匆忙,可能會誤解它)。這裏是視頻:http://www.youtube.com/watch?v=3xK5KKQx-J0
我想如果我可以使用這個條件並嘗試它的美食,我可以研究和修改它,並在它上面做更多的工作,以使它完全獲得過濾系統的工作。
在下面的代碼中,我的目標是在SQL中檢查一個PHP變量= to,如果它= = Cuisine,那麼我不想執行'WHERE Cuisine = $ cuisine'部分查詢。 $ cuisine是一個變量,它使用'POST'方法從簡單的HTML/AJAX表單下拉菜單中獲取。
<?php
$result = mysql_query("SELECT * FROM restaurants
IF($cuisine != 'Cuisine', WHERE Cuisine='$cuisine')
ORDER BY restaurantID
")
or die(mysql_error());
?>
P.S我不知道這是否是解決我的問題,正確的方法,但是我現在已經如上所述我的思路和我的問題給你。
我理解你的挫折感時,我沒有留下任何細節,再次表示歉意,因爲我寫了一個寫得不好的問題來浪費你的時間,我會記住確保我未來的問題/答案更加詳細。
你想完成什麼?它看起來像是在混合使用PHP和SQL格式,但不太清楚查詢應該做什麼。 – JJJ 2012-01-03 11:24:32
你想在那裏實現什麼? – 2012-01-03 11:24:32
是什麼阻止你使用普通的'where'子句? – adarshr 2012-01-03 11:24:37