当前位置: 首页 > 面试题库 >

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

姜淇
2023-03-14
问题内容

在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');
...

我从CI应用程序之一中获得以下代码。

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

Q1。反引号`和单引号’有什么区别?

Q2。我可以在上述查询中使用IF语句吗?

Q3。这是什么意思?

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

问题答案:
  1. 在MySQL中,反引号会引用 名称 ,而单引号会创建 字符串 。如果您有一个名为的列select,则在不带反引号的情况下使用该名称(如in)时,MySQL会引发语法错误,SELECT select FROM foo因为它将其解释为可能在此处不出现的关键字。

  2. 该IF 函数 可用作SELECT语句中的列规范。参见MySQL参考。

  3. default如果value为空字符串,则此函数从列返回值。否则,它从value自身返回值。结果将称为value。有关详细信息,请参见MySQL参考。



 类似资料:
  • 问题内容: 我以为还会有另一个问题,但我找不到。在使用PHP的MySQL中,我通常用反引号封装字段名,以掩盖任何保留的名称或字符。但是,我的一位同事指出,这也可以使用方括号来实现。排除反引号与SQL Server不兼容的事实(显然),有什么区别?我应该使用哪个? 问题答案: SQL Server / T-SQL使用方括号(以及MS Access),而MySQL使用反引号。 据我所知,可以在文档中露

  • 问题内容: SQL中的单引号和双引号有什么区别? 问题答案: 单引号用于指示SQL中字符串的开头和结尾。在SQL中通常不使用双引号,但每个数据库的双引号可能会有所不同。 坚持使用单引号。 无论如何,这是主要用途。您可以为列别名使用单引号- 您希望在应用程序代码中引用的列名可以是数据库中实际未调用的列名。例如:的可读性更高,因此您可以使用以下两种方式之一: 两者都可以在Oracle,SQL Serv

  • 问题内容: 我有反引号构建MYSQL查询。例如, 相对于: 我认为我是从Phpmyadmin导出中获得这种做法的,并且据我了解,甚至Rails都会生成这样的查询。 但是如今,我看到这样构建的查询越来越少了,而且代码看起来更加混乱,并且查询中带有反引号。即使有了SQL helper函数,没有它们,事情也会变得更加简单。因此,我正在考虑将它们抛在后面。 我想找出这种做法是否还有其他含义,例如SQL(在

  • 问题内容: 我有些困惑,为什么我在PHP中看到一些代码,这些代码的字符串用单引号引起来,有时用双引号引起来。 我只是在.NET或C语言中知道,如果用单引号引起来,则意味着它是一个字符,而不是字符串。 问题答案: PHP字符串不仅可以通过 _两种_方式指定,还可以通过 四种 方式指定。 用单引号引起来的字符串几乎可以完全“按原样”显示事物。变量和大多数转义序列将不被解释。唯一的例外是,要显示文字单引

  • 问题内容: 我正在尝试学习编写查询的最佳方法。我也了解保持一致的重要性。到现在为止,我在没有任何实际考虑的情况下随机使用单引号,双引号和反引号。 例: 另外,在上述例子中,考虑到,,等可以是变量。 这是什么标准?你是做什么? 我已经在这里阅读了大约20分钟的类似问题的答案,但是似乎没有确切的答案。 问题答案: 反引号用于表和列标识符,但是仅当标识符是MySQL保留关键字时,或者当标识符包含空格字符

  • 问题内容: Java中的单引号和双引号之间有区别吗? 问题答案: 对文字s 使用单引号,对文字s 使用双引号,如下所示: 不能以其他任何方式使用它们(例如,在Python中)。