php版本: 7.2.34
thinkphp版本: v6.0.5
数据表:
CREATE TABLE `shj_test_ss` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(60) NOT NULL DEFAULT '' COMMENT '账号',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='账号表';
添加测试数据:INSERT INTO `shj_test_ss` VALUES ('1', 'Walter');
INSERT INTO `shj_test_ss` VALUES ('2', 'Nanson');
INSERT INTO `shj_test_ss` VALUES ('3', 'Walter');
// 这个可以查出数据
$result = \think\facade\Db::connect()
->name('test_ss')
->column('distinct username');
echo '数量: ' . count($result) . PHP_EOL; // 2
echo 'sql: ' . \think\facade\Db::connect()->getLastSql() . PHP_EOL; // SELECT distinct username FROM `shj_test_ss`
// 加一个别名就会查不到数据
$result = \think\facade\Db::connect()
->name('test_ss')
->alias('t')
->column('distinct t.username');
echo '数量: ' . count($result) . PHP_EOL; // 0
echo 'sql: ' . \think\facade\Db::connect()->getLastSql() . PHP_EOL; // SELECT distinct t.username FROM `shj_test_ss` `t`
exit;
这样的问题就是,如果需要连表,通过字段去重就会出现查不到数据情况 最佳答案
