Каковы различия между обратным трюком и одинарной кавычкой? Могу ли я использовать оператор IF в запросе, как указано выше? - PullRequest
4 голосов
/ 23 января 2010

В руководстве codeigniter записано следующее.

$ this-> db-> select () принимает необязательный второй параметр. Если вы установите это ЛОЖЬ, 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`

1 Ответ

14 голосов
/ 23 января 2010
  1. В MySQL обратные кавычки заключают в кавычки names , в то время как одинарные кавычки создают string .Если у вас есть столбец с именем select, MySQL выдаст синтаксическую ошибку при использовании этого имени без обратных кавычек - как в SELECT select FROM foo - поскольку он будет интерпретировать его как ключевое слово, которое может отсутствовать там.

  2. Эта функция IF может использоваться в качестве спецификации столбца в инструкциях SELECT.См. справочник MySQL .

  3. Эта функция возвращает значение из столбца default, если value - пустая строка.В противном случае он возвращает значение из value.Результат будет называться value.Подробнее см. MySQL .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...