Backtick ve tek tırnak arasındaki farklar nelerdir?

1 Cevap php

codeigniter manual olarak şu yazıyor.

$this->db->select() accepts an optional second parameter. If you set it to FALSE, CodeIgniter will not try to protect your field or table names with backticks. This is useful if you need a compound select statement.

$this->db->select('(SELECT SUM(payments.amount) FROM payments 
WHERE payments.invoice_id=4) AS amount_paid', FALSE);
$query = $this->db->get('mytable');
...

Ve ben one of CI applications aşağıdaki kodu var.

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

Q1. Backtick `ve tek tırnak 'arasındaki farklar nelerdir?

Q2. IF deyimi Ben yukarıdaki gibi bir sorguda kullanabilir miyim?

Q3. Bu ne anlama geliyor?

IF(`value` = "", `default`, `value`) as `value`

1 Cevap

  1. MySQL, backticks alıntı names, tek tırnak oluşturmak iken strings. Eğer adında bir sütun varsa, ters tırnakların olmadan bu adı kullanırken select, MySQL, bir sözdizimi hatası atmak istiyorum - gibi SELECT select FROM foo - bu oluşabilir hangi anahtar kelime olarak yorumlamak gibi orada.

  2. Bu IF function SELECT ifadelerine bir sütun şartname olarak kullanılabilir. MySQL reference bakın.

  3. value boş bir dize ise, bu fonksiyon, default sütundaki değeri verir. Else value kendisinden değeri döndürür. Sonuç çağrılır value. Ayrıntılar için MySQL reference bakınız.