Mysql和WHERE选择

时间:2013-08-20 14:04:34

标签: php mysql

我做了选择但是无法使用WHERE LIKE函数。这条线有什么问题?

$result = mysql_query("SELECT * FROM games WHERE soort='nieuws' AND gamenaam='$spelnaam' AND platform LIKE '%wiiu%' AND ORDER BY id DESC");

直到我添加

才有效
AND platform LIKE '%wiiu%'

平台列包含具有多个值的单元格,这些值来自选择框表单。所以它写道,wiiu,ps4,xbox360,电脑等....一定很简单,但我尝试了一百万次......

7 个答案:

答案 0 :(得分:11)

删除AND

之前的ORDER BY
$result = mysql_query("SELECT * FROM games WHERE soort='nieuws' AND gamenaam='$spelnaam' AND platform LIKE '%wiiu%' AND ORDER BY id DESC");

应该是

$result = mysql_query("SELECT * FROM games WHERE soort='nieuws' AND gamenaam='$spelnaam' AND platform LIKE '%wiiu%' ORDER BY id DESC");

答案 1 :(得分:2)

还有一个额外的AND,应该是:

$result = mysql_query("SELECT * FROM games WHERE soort='nieuws' AND gamenaam='$spelnaam' AND platform LIKE '%wiiu%' ORDER BY id DESC");

答案 2 :(得分:2)

请不要使用mysql_ *,因为它已被弃用,请改用mysqli_或PDO。
参考http://php.net/manual/en/book.mysqli.php

并将您的查询更改为

SELECT * FROM games 
WHERE soort='nieuws' 
AND gamenaam='$spelnaam' 
AND platform LIKE '%wiiu%' 
ORDER BY id DESC"

答案 3 :(得分:1)

$result = mysql_query("SELECT * FROM games WHERE soort='nieuws' AND gamenaam='$spelnaam' AND platform LIKE '%wiiu%' ORDER BY id DESC");

你有额外的' AND#39;最后

答案 4 :(得分:1)

SELECT * FROM games
WHERE soort = 'nieuws'
AND gamenaam = '$spelnaam'
AND platform LIKE '%wiiu%'
ORDER BY id DESC

AND声明之前不应该有ORDER BY

,我觉得强烈要求您考虑使用mysqliPDO代替mysql函数,mysql已被弃用。

答案 5 :(得分:0)

应该是这样的:

$result = mysql_query("SELECT * FROM games WHERE soort='nieuws' AND gamenaam='$spelnaam' AND platform LIKE '%wiiu%' ORDER BY id DESC");

答案 6 :(得分:0)

你真的不应该在字段中放入逗号分隔值。你实际上提供了一个很好的例子,为什么不说你有控制台名称。如果您正在寻找与原始Wii相关的内容,该怎么办?你有WHERE soort LIKE "%wii%"之类的东西,对吗?好吧,这也将返回所有WiiU相关项目,因为“WiiU”也像“%wii%”。

执行此操作的正确方法包括制作和加入链接表。