mysql - 如何使用查询中的行值来影响查询的选择?

标签 mysql sql database

假设我有一个表 auth_token,其值为 id_typevalid_to。根据 id_type,我想获取所有 valid_to 小于 time() - x 的 token 。因此,在这种情况下,一旦 id_typea,一旦 id_typeb<,x 将具有另一个值

让我们举个例子:id_type = a 一次,我希望在 valid_to = time() - 3600 时选择同一行id_type = b 我希望同一行被选择一次valid_to = time()

有人知道我怎样才能实现这个目标吗?

最佳答案

您可以在 where 子句中使用 case when 条件。

i.e.

    Select * 
    from auth_token 
    where (CASE WHEN id_type = 'a' THEN valid_to = ? WHEN id_type = 'b' THEN valid_to = ? END);

关于mysql - 如何使用查询中的行值来影响查询的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51260837/

相关文章:

php - 按位运算符的 MySQL 状态交换

sql - 数据库表中索引的缺点是什么?

mysql - RAND() 查询和性能

php - 如何根据一天(而不是日期)过滤集合?

java - 检查表是否存在,使用java中的连接对象

MYSQL 触发器新旧

php - 错误: You have an error in your SQL syntax in select statement

php - 表单提交后生成引用ID

mysql - 如何连接变量以在 mysql 查询中形成日期时间对象

mysql - 如何添加计数和清理/简化涉及 4 个 INNER JOIN 和 2 个 LEFT JOIN 的派生查询