mysql - MySQLi按另一列选择不同的顺序
问题描述
我有以下 MySQL 数据库:
variable displayname clevs ccols cmin cmax show_on_quicklinks client
'capesfc' 'cape' '100 200' '18 19' '100' '3400' 'gfs,access-c' NULL
'lftxsfc' 'li' '-10 -9' '50 52' '-10' '0' 'gfs' NULL
'lftxsfc' 'li' '-10 -9' '50 52' '-10' '0' 'gfs,access-c' 'client1'
'tscreen' 'tempsfc' '-10 45' '50 52' '-10' '45' 'gfs,access-c' 'client1'
'lftxsfc' 'li' '-10 -9' '50 52' '-10' '0' 'access-c' 'client2'
'capesfc1' 'cape1' '100 200' '18 19' '100' '3400' 'gfs,access-c' NULL
我想选择唯一的显示名称,其中客户端不为空,否则只返回显示名称...所以在下面的示例中,如果我选择 client='client1',它将返回 client1 的行,并且还必须返回 client1 的所有其他行一片空白。它不得为其他客户端返回任何其他行:
variable displayname clevs ccols cmin cmax show_on_quicklinks client
'lftxsfc' 'li' '-10 -9' '50 52' '-10' '0' 'gfs,access-c' 'client1'
'tscreen' 'tempsfc' '-10 45' '50 52' '-10' '45' 'gfs,access-c' 'client1'
'capesfc' 'cape' '100 200' '18 19' '100' '3400' 'gfs,access-c' NULL
'capesfc1' 'cape1' '100 200' '18 19' '100' '3400' 'gfs,access-c' NULL
解决方案
您可以尝试使用聚合进行以下操作,但如果您使用 mysql 的升级版本,则可以使用 row_number() 函数,该函数更容易识别重复
select variable,displayname,clevs,ccols,cmin,cmax,max(show_on_quicklinks) as show_on_quicklinks,max(client) as client
from tablename
gruop by variable,displayname,clevs,ccols,cmin,cmax
推荐阅读
- ios - 在执行批处理操作后我们应该使用 context.refreshObject 还是 context.mergeChanges ?
- laravel - 使用 Laravel Dusk 检索测试结果
- c++ - 服务器无缘无故结束监听套接字(NodeJS & net)
- azure - 在 Azure 的存储帐户防火墙中将跨租户子网列入白名单
- amazon-web-services - AWS S3 存储桶默认存储类
- css - CSS 定位问题:希望表格定位到 TOP
- java - Java导入的流程是什么?
- amazon-web-services -
如何从外部脚本获取和使用返回值? - dialogflow-es-fulfillment - 我想将我使用 dialogflow 中的参数从客户那里得到的数据存储到谷歌表。那可能吗?
- python-3.x - Pandas DataFrame.plot 未正确设置 xlim 和 ylim