php - 搜索未出现在值之间的数据

标签 php mysql

这是我的问题

想象一下这张 table

id| idcompany
----------
1 | 1
----------
2 | 2
----------
3 | 1
----------
5 | 1
----------
6 | 2

我用 PHP 编写了这样的代码:

if id <= 2 then DAY1
if id BETWEEN 3,4 then DAY2
if id BETWEEN 5,6 then DAY3

查看该表,我们可以假设公司 1 出现在第 1 天、第 2 天和第 3 天 公司 2 出现 Day1 和 Day3

我想在这里完成的是:如何在 SQL 中选择所有公司 谁不会参加第二天的事件?

我已经尝试过:

SELECT * FROM tickets
WHERE id NOT BETWEEN 3 AND 4
GROUP BY(idcompany)

但很明显这不会起作用,因为查询将从另一天选择 idcompany 并打印结果。

有人可以帮我解决这个问题吗? 提前致谢。

最佳答案

希望我没猜错

http://sqlfiddle.com/#!9/6f9921/1

SELECT idcompany
FROM tickets
GROUP BY idcompany
HAVING SUM(IF(id IN (3,4),1,0))=0

更新如果您需要间隔,可以替换SUM中的条件:

SELECT idcompany
FROM tickets
GROUP BY idcompany
HAVING SUM(IF(id BETWEEN 330601 AND 40800,1,0))=0

关于php - 搜索未出现在值之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32146732/

相关文章:

php - 一起数一排的数字

php - 来自电子邮件地址的低级安全散列

mysql - 带 hibernate 功能的 Spring Boot : Auto-generating database schema with columns which can holds fractions of seconds

php - Log.php 从 MySQL 数据库返回 'Invalid User'

PHP - GetSQLValueString 函数

php - $_POST 值返回空数组

php - IE 中的下拉菜单对抗 FF 和 Chrome

mysql - 更新数据库中的值

mysql - 大型交易的性能/资源成本呈线性或指数增长吗?

mysql - 从一年中的当前星期减去一周