Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Codeigniter ActiveRecord查询中使用带有CONCAT的IFNULL_Php_Mysql_Codeigniter - Fatal编程技术网

Php 在Codeigniter ActiveRecord查询中使用带有CONCAT的IFNULL

Php 在Codeigniter ActiveRecord查询中使用带有CONCAT的IFNULL,php,mysql,codeigniter,Php,Mysql,Codeigniter,我正在使用Codeigniter ActiveRecord ORM执行一个查询,该查询将从我的数据库中选择一些数据。我的数据库表中的一个数据位来自名为updated_的列,该列由users表中的一个整数表示,该整数表示哪个用户更新了该特定记录。该整数当前是一个int(11),在创建初始记录时默认为NULL,并且该列的值显然可以为NULL 当运行查询时,我不会获取更新的_by字段的值。我做错什么了吗 $this->db->select("IFNULL(CONCAT_WS(' ', up

我正在使用Codeigniter ActiveRecord ORM执行一个查询,该查询将从我的数据库中选择一些数据。我的数据库表中的一个数据位来自名为updated_的列,该列由users表中的一个整数表示,该整数表示哪个用户更新了该特定记录。该整数当前是一个int(11),在创建初始记录时默认为NULL,并且该列的值显然可以为NULL

当运行查询时,我不会获取更新的_by字段的值。我做错什么了吗

$this->db->select("IFNULL(CONCAT_WS(' ', updator.first_name, updator.last_name), '----') AS updated_by", FALSE);
对于下面的评论,这是我的回音查询语句

SELECT `pages`.`page_id`, `pages`.`page_name`, `pages`.`created_at`, `pages`.`updated_at`, `statuses`.`status_name`, CONCAT_WS(' ', creator.first_name, creator.last_name) AS created_by, IFNULL(CONCAT_WS(' ', updator.first_name, updator.last_name), '----') AS updated_by FROM (`pages`) JOIN `users` AS creator ON `creator`.`user_id` = `pages`.`created_by` LEFT JOIN `users` AS updator ON `updator`.`user_id` = `pages`.`updated_by` JOIN `statuses` ON `statuses`.`status_id` = `pages`.`status_id`

问题基本上是CONCAT_WS()永远不会返回NULL,您可以运行查询

SELECT CONCAT_WS(' ',NULL,NULL);
它将始终返回一个空格,因此,如果没有updater.firstname或updater.last_name,它将返回一个空格,而不是期望得到的空值

可以通过将IFNULL更改为简单的IF来实现这一点

IF(updator.firstname IS NULL, '----', CONCAT_WS(' ', updator.first_name, updator.last_name))

echo$this->db->last_query()
并查看生成的查询。@Nil'z您有发布此评论的宏吗?:不要误会,我认为这是个好主意。我已经更新了我的问题,包括回音查询。没有那样的,只是不喜欢复杂性第一手。PatrickManser@user2576961您是否在phpmyadmin/控制台中运行此查询来测试它?