Mysql连续3个单引号

标签 mysql syntax quotes

我遇到了下面的查询,使用 Mysql 将行动态转换为列。有谁知道 Product_Name 字段前后的 3 个单引号的作用?

  SET @sql = NULL;
   SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'count(case when Product_Name = ''',
      Product_Name,
      ''' then 1 end) AS ',
      replace(Product_Name, ' ', '')
    )
  ) INTO @sql
from products;

SET @sql = CONCAT('SELECT pt.partner_name, ', @sql, ' from partners pt
left join sales s
  on pt.part_id = s.partner_id
left join products pd
  on s.product_id = pd.prod_id
group by pt.partner_name');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

最佳答案

https://dev.mysql.com/doc/refman/5.7/en/string-literals.html说:

A ' inside a string quoted with ' may be written as ''.

该手册页上有很多示例。

关于Mysql连续3个单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46085299/

相关文章:

php - 使用查询字符串中的变量获取数据?

mysql - 使用 And 语句进行多重连接不起作用

mysql - 标量子查询是否针对 MySQL 中的每个连接执行 where 条件?

delphi - "var"在字段声明上有什么区别?

python - 从字符串中删除不同类型的双引号?

python - 有没有办法绕过discord.py 中的限制,即如果您计划向命令提供多字参数,则必须用引号将其覆盖?

查询字符串中的 Java SQL 引号

mysql - 将多行合并为一行 MySQL

javascript - 是否有以下反射语言功能的名称和标准实现方式?

sql-server - FROM 子句中的 UNPIVOT 和 JOIN 语法错误