小编plu*_*ski的帖子

MySQL加入IF条件

我想通过查询simillar得到一些结果:

SELECT 
    * FROM
    users LEFT JOIN
    IF (users.type = '1', 'private','company') AS details ON
    users.id = details.user_id WHERE
    users.id = 1
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

mysql if-statement join conditional-statements

17
推荐指数
3
解决办法
6万
查看次数

CakePHP 3 + ORM 查询构建器和列名转义

Ave 已经将一些应用程序从 CakePHP 2 重写为 CakePHP 3。我在数据库中有一些结构,列:key(自动生成的键字符串)。在 mysql 中,key 是一个关键字,所以当我写一个 SQL 查询时,我必须将它转义为

INSERT INTO table (`key`) VALUES (....)
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我尝试保存实体时,我收到一个错误:

[42000][1064] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'key, 
Run Code Online (Sandbox Code Playgroud)

该错误在 Cake\ORM\Table 中的 _insert() 方法中触发:

$statement = $this->query()->insert(array_keys($data))
        ->values($data)
        ->execute();
Run Code Online (Sandbox Code Playgroud)

任何建议如何避免这种情况?CakePHP 版本 3.5.11

sql cakephp reserved-words quoting cakephp-3.x

4
推荐指数
1
解决办法
1554
查看次数