php - MySQL - 比较一列中的所有值并写入另一列

标签 php mysql sql

我需要创建一个脚本,将数据库中的一个字段(存储了一个日期,其类型为“TEXT”并且无法更改日期)与当前服务器日期进行比较。

日期的编码方式如下“1380571547”,所以我需要使用strftime()来解码它们。例如,使用 strftime 解码的该字段对应于此“Sep-30-2013, 22:05”

我需要的是将这些字段与当前日期进行比较,并根据该条件,在另一个字段中写入“过期”之类的内容。

为了实现这一目标,我编写了以下代码块:

<?php
require("connection.php");

$today = strftime('%b-%d-%Y, %H:%M');
$exp_date = mysql_query("SELECT numbers FROM date");

while($row = mysql_fetch_array($exp_date))
{
echo (strftime ( '%b-%d-%Y, %H:%M', $row ['numbers'])). "<br />";
}


if ($exp_date < $today) {
 $sql = "INSERT INTO date (changed) VALUES ('EXPIRED')";
 $result = mysql_query($sql);
 echo "ADDED!";

} 

?>

但是,这段代码不起作用,有人可以帮助我吗?

最佳答案

PHP 不是我的强项,但在我看来,你的条件是对数组进行比较,

IE:

if ($exp_date < $today) // will always be false.

您的代码可能必须看起来更像这样。

while($row = mysql_fetch_array($exp_date))
{
   if ($row[0] < $today) 
   {
      $sql = "Update date set changed = VALUE where rowid = rowid";
      $result = mysql_query($sql);
      echo "ADDED!";
    } 
}

话虽如此,我可能会使用 case 语句在 SQL 中进行比较和更新,

Update Date 
     set changed = case when number > ExpiryDate 
                        then "Expired"  
                        else "Current" 
                        end

关于php - MySQL - 比较一列中的所有值并写入另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20060477/

相关文章:

php - 导致 fatal error : Call to undefined function mysqli_report()? 的原因

php - 复杂的 SQL 查询 - 我该怎么做?

PHP session 在 PHP5 中不起作用

php - 我如何在 php 中使用 fetchAll?

php - 枚举值未在 mysql 表中更新?

php - GROUP_CONCAT 的重复值 - CI

mysql - Perl 将空时间戳打印到 csv 文件

php - MySQL/PHP 中的时区偏移量(和 st/dst 更改)

sql - Oracle ListaGG,前 3 个最常见的值,在一列中给出,按 ID 分组

mysql - 获取 mysql 复杂查询的帮助