一尘不染

反引号和单引号有什么区别?我可以在上述查询中使用IF语句吗?

mysql

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`

阅读 326

收藏
2020-05-17

共1个答案

一尘不染

  1. 在MySQL中,反引号会引用 名称 ,而单引号会创建 字符串 。如果您有一个名为的列select,则在不带反引号的情况下使用该名称(如in)时,MySQL会引发语法错误,SELECT select FROM foo因为它将其解释为可能在此处不出现的关键字。

  2. 该IF 函数 可用作SELECT语句中的列规范。参见MySQL参考

  3. default如果value为空字符串,则此函数从列返回值。否则,它从value自身返回值。结果将称为value。有关详细信息,请参见MySQL参考

2020-05-17