1

私の解決策はうまくいかないようですが、誰かが私を助けることができますか?

$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 ;
4

1 に答える 1

2

これを試して:

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

コードでは、「min_stock」は列ではなく文字列「min_stock」として解釈されます。将来、この種の問題が発生した場合は、呼び出し$this->db->last_query();て、DB に対して実行された正確なクエリを確認できます。

于 2012-09-19T10:11:04.980 に答える