我有一个有趣图片的数据库,但是这个问题涉及到所有有发布日期的东西。如果我要更新一个页面,我首先要检查是否有今天设置的条目,如果没有,我会选择数据库中最长的条目,如:

$result=mysql_query("SELECT * FROM amazingjokes.img WHERE listed=CURDATE()");
if(!mysql_num_rows($result)){
   $result=mysql_query("SELECT * FROM amazingjokes.img WHERE isnull(listed)
                        ORDER BY  added ASC");
   $row=mysql_fetch_array($result);
   $mysql_query("UPDATE amazingjokes.img SET listed=CURDATE()
                 WHERE id=$row[id]");
}

基本上这就是“获取今天的图像,并在没有图像的情况下选择最长的待处理图像”。是否可以在一个查询中执行此操作?如何执行此操作?

最佳答案

你可以试试这样的方法:

update amazingjokes.img
    set listed=curdate()
where
    id IN (
        select
            id
        from
            amazingjokes.img
        where
            isnull(listed)
        order by
            added asc
    )

要替换“孔3”查询,可以尝试:
 update amazingjokes.img
    set listed=curdate()
 where
    id IN (
        select
            id
        from
            amazingjokes.img
        where
            listed=curdate()
        order by
            added asc
    )
    AND (
        select
            count(*)
        from
            amazingjokes.img
        where
            listed=curdate()
    ) = 0

关于mysql - MySQL中的条件集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17421305/

10-11 03:19