2

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

我尝试了 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)
4

1 回答 1

3

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

可能这会工作

SELECT IF(links.name='', 'noname', links.name) AS owner
于 2013-08-29T15:18:20.423 回答