使用Codeigniter比较同一行和同一表中的2个值

时间:2012-09-19 09:44:23

标签: mysql codeigniter field

任何人都可以帮助我,而我的解决方案似乎不起作用:

$this->db->where('stock <=','stock_min');
$res = $this->db->get("products")->result();

您认为我想比较字段'stock'是否小于或等于'stock_min'......

有人?

按要求提供表格结构:

    CREATE TABLE IF NOT EXISTS `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `sub_of` int(11) DEFAULT NULL,
  `category` int(45) NOT NULL DEFAULT '0',
  `name` varchar(45) NOT NULL DEFAULT '',
  `slug` varchar(250) NOT NULL,
  `number` varchar(45) DEFAULT NULL,
  `description` text NOT NULL,
  `value` decimal(5,0) NOT NULL DEFAULT '0',
  `value_discount` varchar(100) DEFAULT NULL,
  `yell` varchar(100) DEFAULT NULL,
  `display_price` tinyint(1) DEFAULT '0',
  `stock` int(11) NOT NULL DEFAULT '0',
  `stock_min` int(11) NOT NULL DEFAULT '1',
  `warned` tinyint(2) NOT NULL DEFAULT '0',
  `relation` varchar(350) DEFAULT NULL,
  `supplier` varchar(150) DEFAULT NULL,
  `price_in` decimal(10,2) DEFAULT '0.00',
  `price_out` decimal(10,2) DEFAULT '0.00',
  `price_out_btw` decimal(10,2) DEFAULT '0.00',
  `active` smallint(6) DEFAULT '0',
  `display_from` date NOT NULL DEFAULT '0000-00-00',
  `display_till` date NOT NULL DEFAULT '0000-00-00',
  `seen` int(11) NOT NULL DEFAULT '0',
  `info_requested` int(11) NOT NULL DEFAULT '0',
  `inserted` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=322 ;

1 个答案:

答案 0 :(得分:2)

试试这个:

$this->db->where('stock <= stock_min');

在您的代码中,'min_stock'被解释为字符串'min_stock'而不是列。将来遇到此类问题时,您可以调用$this->db->last_query();查看针对数据库运行的确切查询。