我必须使用codeIgniter按CONVERT(`codExtern`, SIGNED)
订购。
如果我这样使用它:
$this->db->order_by(" CONVERT(`codExtern`, SIGNED) ");
codeigniter将SIGNED
字放在`
- s之间,如:
CONVERT(codExtern, `INTEGER` )
我怎样才能让它发挥作用?
答案 0 :(得分:1)
很遗憾,您无法使用参数like in the select()
method禁用标识符保护。 CI会在输入CI_DB_driver::_protect_identifiers上调用if it has a ,
in it。
目前,如果你设置了所谓的"私有"你可以解决这个问题。在调用false
方法之前,$this->db
上$_protect_identifiers
到order_by
的属性,所以当它运行时它将跳过此,然后将其翻转(这有助于有问题的列/表例如姓名)。这可能不是一个好主意,在将来的CI版本中,此属性可能会变为private
并且您的代码将会中断。
不幸的是,数据库库无法扩展,但是如果您不想修改system
下的文件,可以在order_by()
方法中创建一个例外,就像"随机排序一样()" got one.