mysql - 如何从数据库表中选择除某些 id 之外的内容

标签 mysql

我的数据库表具有以下 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/

相关文章:

php - MySQL - 在使用 GROUP BY 查询时遇到 COUNT() 问题

php - 如何在 SQL 中从同一个表中的其他两个值创建一个值?

MySQL:当最大值不唯一时获取每组中的最大行

mysql - 执行 : mysqlfabric sharding add_table 1 employees. 员工 emp_no 时出错

mysql - 如何形成这个 MYSQL 查询

php - PHP 的 Mysql 命令

python - 为什么 MySQL 数据库在 SQLAlchemy 查询期间会出现 "go away"?

mysql - 以magento方式创建表

mysql - 选择与 in-Tag 相连接

mysql - 如何在Mysql中使用用户定义的@variable作为线程安全