php - COALESCE 不适用于 CodeIgniter

标签 php mysql codeigniter mysqli coalesce

我尝试了很多次,但没有任何效果。

我尝试过 3 个查询:

 $query = $this->db->query("SELECT COALESCE(links.name, 'noname') as owner FROM links");

 $query = $this->db->query("SELECT COALESCE(links.name, users.username) as owner FROM links");

 $this->db->select("COALESCE(links.name, 'noname') as owner", false);
  1. 已加入用户表
  2. 尝试不加入
  3. CodeIgniter 版本2.1.4
  4. MySql版本5.5.24

我只想显示名称,而不是NULL。如果links.name为NULL,则获取users.username

但我无法弄清楚。

结果始终跟随

  0 => 
    array (size=1)
      'owner' => string 'John Doe' (length=9)
  1 => 
    array (size=1)
      'owner' => string '' (length=0)
  2 => 
    array (size=1)
      'owner' => string '' (length=0)

最佳答案

你得到的是空字符串。这意味着记录中的 links.name 字段不是 NULL,而是一个空字符串。仅当您实际使用完整的 SQL NULL 值时,coalesce() 才会触发。空字符串不是 null,它们只是碰巧为空的字符串。

也许这会起作用

SELECT IF(links.name='', 'noname', links.name) AS owner

关于php - COALESCE 不适用于 CodeIgniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18514783/

相关文章:

php - 面向对象的数据库连接

PHP Mandrillapp 使用 addGlobalMergeVar 发送原始 html

mysql - 将试卷中相似的和/问题联系起来

MySQL 替换查询

php - Css Html JavaScript - 导航突出显示当前选定的菜单

php - 弹出窗口关闭

mysql - 独特 - 哪些元素被拿走了?第一次出现还是最后一次出现?

php - ubuntu htaccess 不工作

php - 引用另一列的子字符串后自动填充sql列数据

php - code igniter - 发送搜索词并使用 jquery 从 php 获取 mysql 结果作为 json