【发布时间】:2012-07-29 07:06:35
【问题描述】:
PHP:
$current = time();
$time_ago = $current - 45*60; // get the time 45 mts ago.
MySQL:
我有一个表状态,其中有一个日期时间列“已修改”;
我正在尝试查询表以获取修改时间低于$time_ago;的行
我的 PHP 代码:
$this->db->select("(SELECT UNIX_TIMESTAMP(status.modified) FROM status WHERE status_id = 0) AS modified_timestamp" , FALSE);
$this->db->from('status');
$this->db->where('status_id', 0);
$this->db->where('modified_timestamp <', $time_ago);
$this->db->limit(25);
$q = $this->db->get();
得到一个数据库错误:
“where 子句”中的未知列“modified_timestamp”
SELECT
(SELECT UNIX_TIMESTAMP(status.modified) FROM status WHERE status_id = 0) AS modified_timestamp
FROM (status) WHERE `status_id` = 0 AND `modified_timestamp` < 1343542758 LIMIT 25
【问题讨论】:
-
modified_timestamp 是临时表而不是列
-
错误本身是非常具有描述性的,表中不存在 modified_timesatamp 列检查您的拼写
-
Brandon,感谢您指出这一点.. 这是一个临时表。我的sql很生锈。我将如何编写此查询?有什么想法吗?
标签: php mysql codeigniter datetime unix-timestamp