我尝试了很多次,但没有任何高效。
我尝试了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);
2.1.4
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)
答案 0 :(得分:3)
你得到空字符串。这意味着记录中的links.name
字段不是NULL,它是一个空字符串。 coalesce()仅在您实际使用完整的SQL NULL
值时触发。空字符串不为空,它们只是恰好为空的字符串。
可能这样做了
SELECT IF(links.name='', 'noname', links.name) AS owner