我的数据库表具有以下 pageid 的 1,2,3,4,5,6,7,8 --> 将添加更多。 我正在使用
$sql ="select * from pages order by pageid";
$result= mysql_query($sql);
while($page= mysql_fetch_array($result)){
echo "$page[pagetitle]";
}
现在我想选择除 pageid=4 之外的所有内容!这样它就不会显示 pageid = 4 的页面标题并显示其他 1,2,3,5,6 ---> 和任何其他添加的内容。
怎么说全选除了!
最佳答案
只需添加一个 WHERE
条款WHERE pageid <> 4
:
$sql ="select * from pages WHERE pageid <> 4 order by pageid";
$result= mysql_query($sql);
while($page= mysql_fetch_array($result)){
echo $page['pagetitle'];
}
或者替换为 PHP 变量使其成为动态的:
$exclpage = 4;
$sql ="SELECT * FROM pages WHERE pageid <> $exclpage ORDER BY pageid";
如果要排除多个 pageid,请使用 NOT IN()
子句:
// Exclude pages 4,5,9
$sql ="SELECT * FROM pages WHERE pageid NOT IN (4,5,9) ORDER BY pageid";
更新:
由于这个答案最近引起了一些关注,因此建议使用准备好的语句并对变量进行参数化而不是直接在查询中对变量进行参数化,尤其是当变量是任何用户输入的结果时。
$sql ="SELECT * FROM pages WHERE pageid <> ? ORDER BY pageid";
// Bind ? according to your preferred API's method, such as MySQLi::bind_param() or PDO::bindParam()
关于mysql - 如何从数据库表中选择除某些 id 之外的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7893966/