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

shi*_*hin 4 php mysql if-statement codeigniter backticks

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');
...
Run Code Online (Sandbox Code Playgroud)

我从一个CI应用程序中获得以下代码.

$this->db->select('slug, type, 
IF(`value` = "", `default`, `value`) as `value`', FALSE);
Run Code Online (Sandbox Code Playgroud)

Q1.反引号和单引号有什么区别?

Q2.我可以在上面的查询中使用IF语句吗?

Q3.这是什么意思?

IF(`value` = "", `default`, `value`) as `value`
Run Code Online (Sandbox Code Playgroud)

Dav*_*itt 14

  1. 在MySQL中,反引号引用名称,而单引号则创建字符串.如果你有一个名为列select像-中,MySQL将使用时,这个名字没有反引号抛出一个语法错误SELECT select FROM foo-因为这将它解释为可能不会出现有关键字.

  2. 此IF 函数可用作SELECT语句中的列规范.请参阅MySQL参考.

  3. 此函数返回default列中的值,如果value是空字符串.否则它从value自身返回值.结果将被调用value.有关详细信息,请参阅MySQL参考.