我尝试了很多次,但没有任何效果。
我尝试过 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);
- 已加入用户表
- 尝试不加入
- CodeIgniter 版本
2.1.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/