我试图在我从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