我有一个查询,其中只有5个数据从数据库将显示在开始从数据库。这是查询
query="SELECT * FROM detail WHERE status = '1' LIMIT 0,5";
我想附加查询后,用户选择任何其他选项在网页上,如
query .="and category like '%s%'";
但当我选择category时,它显示查询错误。我们不能在limit后面加上and子句吗?或者我们还有别的办法吗
8qgya5xd1#
你说得对,你不能在limit子句后面附加这个,它需要插入where子句。你的目标是
SELECT * FROM detail WHERE status = '1' and category like '%s%' LIMIT 0,5
我想你只想加上这个 AND 特定情况下的条款?如果是这样的话,那么在您知道其中的所有内容之前,不要敲定您的sql字符串。把它分成几部分,然后在你执行之前把它们组合起来。下面是一个非常简单的例子:
AND
$sqlStart = "SELECT * FROM detail WHERE status = '1'";$sqlEnd = " LIMIT 0,5";$sqlMiddle = "";$sqlcategory = " and category like '%s%'";if ($someVariable == true) $sqlMiddle .= $sqlcategory;$sql = $sqlStart.$sqlMiddle.$sqlEnd;//...and then execute the final value of $sql
$sqlStart = "SELECT * FROM detail WHERE status = '1'";
$sqlEnd = " LIMIT 0,5";
$sqlMiddle = "";
$sqlcategory = " and category like '%s%'";
if ($someVariable == true) $sqlMiddle .= $sqlcategory;
$sql = $sqlStart.$sqlMiddle.$sqlEnd;
//...and then execute the final value of $sql
1条答案
按热度按时间8qgya5xd1#
你说得对,你不能在limit子句后面附加这个,它需要插入where子句。
你的目标是
我想你只想加上这个
AND
特定情况下的条款?如果是这样的话,那么在您知道其中的所有内容之前,不要敲定您的sql字符串。把它分成几部分,然后在你执行之前把它们组合起来。
下面是一个非常简单的例子: