在codeigniter手册中写道:
$ this-> db-> select()接受可选的第二个参数。如果将其设置为FALSE,则CodeIgniter不会尝试使用反引号保护您的字段或表名。如果您需要复合选择语句,这将很有用。
$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4) AS amount_paid', FALSE); $query = $this->db->get('mytable'); ...
我从CI应用程序之一中获得以下代码。
$this->db->select('slug, type, IF(`value` = "", `default`, `value`) as `value`', FALSE);
Q1。反引号`和单引号’有什么区别?
Q2。我可以在上述查询中使用IF语句吗?
Q3。这是什么意思?
IF(`value` = "", `default`, `value`) as `value`
在MySQL中,反引号会引用 名称 ,而单引号会创建 字符串 。如果您有一个名为的列select,则在不带反引号的情况下使用该名称(如in)时,MySQL会引发语法错误,SELECT select FROM foo因为它将其解释为可能在此处不出现的关键字。
select
SELECT select FROM foo
该IF 函数 可用作SELECT语句中的列规范。参见MySQL参考。
default如果value为空字符串,则此函数从列返回值。否则,它从value自身返回值。结果将称为value。有关详细信息,请参见MySQL参考。
default
value