php - Mysql多个OR语句

标签 php mysql

所以我有一个表,其中包含一个名为 id 的列,在极少数情况下,列出的许多 ID(在 20-140 个不同的 ID 之间)不需要/不能向用户显示。这一切都基于不同的权限。

SELECT * FROM `table` WHERE (`id` != 21474 OR 26243 OR 78634) AND `checked` = 5

不幸的是,数据库中的其他任何地方都没有额外的分组,让我可以立即调出这部分 ID。所以我正在寻找是否有更好的方法来解决这个问题,或者我是否应该忽略在 mysql/SELECT 语句期间执行此操作,而是在提取所有内容后像 PHP 语句一样在其中执行此操作。稍后 PHP foreach 的问题是提取的数据可能有成百上千行,因此它确实会减慢页面速度。正如您在上面的 mysql 查询中看到的那样,我正在考虑在一个巨大的语句中列出 ID,但我想也许有更好的方法来解决这个问题。 100 个 OR 听起来并不是最好的解决方案。

最佳答案

使用 IN 关键字,

SELECT * FROM `table` WHERE `id` NOT IN (21474, 26243, 78634) AND `checked` = 5

关于php - Mysql多个OR语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6700705/

相关文章:

c# - 在 C# 中使用 ADO.NET 进行登录身份验证

php - 如何从数据库中选择的前 10 个条目中更新前 5 个条目

java - PHP - MySQL - Java - 确保字符集统一

php - 如何在 PHP 中使对象全局可访问

php - 传递 GET 并使用 GET 读取 mySQL

php - Codeigniter 表单验证 - 至少需要一个字段

php - 将平面数组转换为要保存在数据库中的分隔字符串

php - 自动将网页中的数据在特定时间保存到文件中

javascript - 提示数字或字符仅在文本框中输入值?在 AngularJS 中如何?

mysql - 带有 WordPress 插件的 Redis