Каковы различия между Апостроф, а одинарная кавычка? Могу ли я использовать оператор IF в запросе, как описано выше?
В руководстве codeigniter записывает следующее.
$this- > db - >select () принимает необязательный второй параметр. Если вы установите это ложь, CodeIgniter не будет пытаться чтобы защитить имена полей или таблиц с задними палочками. Это полезно, если вы нужен составной оператор select.
$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. В чем разница между backtick ` и single quote '?
Q2. Могу ли я использовать оператор IF в запросе, как описано выше?
Q3. Что это значит?
IF(`value` = "", `default`, `value`) as `value`
1 ответ:
В MySQL обратные кавычки цитируют имена, в то время как одиночные кавычки создают строки. Если у вас есть столбец с именем
select
, MySQL выдаст синтаксическую ошибку при использовании этого имени без обратных указателей - как вSELECT select FROM foo
- поскольку он будет интерпретировать его как ключевое слово, которое может там не встречаться.Эта функция IF может использоваться в качестве спецификации столбца в операторах SELECT. Смотрите ссылку MySQL .
Эта функция возвращает значение из столбца
default
, еслиvalue
является пустой строкой. Иначе он возвращает значение из самогоvalue
. Результат будет называтьсяvalue
. Смотрите ссылкуMySQL для получения подробной информации.