反引号和单引号有啥区别?我可以在上面的查询中使用 IF 语句吗?
Posted
技术标签:
【中文标题】反引号和单引号有啥区别?我可以在上面的查询中使用 IF 语句吗?【英文标题】:What are the differences between backtick and single quote? Can I use IF statement in a query as above?反引号和单引号有什么区别?我可以在上面的查询中使用 IF 语句吗? 【发布时间】:2011-01-08 12:38:05 【问题描述】:在codeigniter manual中写下以下内容。
$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');
...
我有来自one of CI applications的以下代码。
$this->db->select('slug, type,
IF(`value` = "", `default`, `value`) as `value`', FALSE);
第一季度。反引号`和单引号'有什么区别?
第二季度。我可以在上面的查询中使用 IF 语句吗?
第三季度。这是什么意思?
IF(`value` = "", `default`, `value`) as `value`
【问题讨论】:
在您的问题 1 中,您是指反引号而不是反斜杠吗? 反引号`和单引号'。 哈,我以为我认出了这个查询:-p 是的,菲尔。我正在研究你的代码。你的新版本看起来很棒。我想向代码点火器大师学习。哈哈。:-) 【参考方案1】:在 mysql 中,反引号引用 names,而单引号创建 strings。如果你有一个名为select
的列,当使用这个没有反引号的名称时,MySQL 会抛出一个语法错误——就像在SELECT select FROM foo
中一样——因为它会将它解释为可能不会出现在那里的关键字。
此 IF 函数 可用作 SELECT 语句中的列规范。请参阅MySQL reference。
如果value
是空字符串,则此函数返回来自default
列的值。否则它会返回来自value
本身的值。结果将被称为value
。详情请参阅MySQL reference。
【讨论】:
@David 谢谢。 MySQL 手册很难阅读(对我来说)。你能推荐一本好书吗? @shin:虽然我从来没有发现除了开发人员参考之外需要阅读更多内容,但我发现了这个问题:***.com/questions/1935813/…以上是关于反引号和单引号有啥区别?我可以在上面的查询中使用 IF 语句吗?的主要内容,如果未能解决你的问题,请参考以下文章