php mysql查询只获取列中的第一个值
我有一个表名tblnetworkstatus,有11列php mysql查询只获取列中的第一个值,php,mysql,Php,Mysql,我有一个表名tblnetworkstatus,有11列 身份证 发行人姓名 受影响的\u服务器 受影响的服务 问题类型 优先权 持续时间 地位 开始日期 结束日期 描述 我的表中有以下记录 id issue_name affected_server affected_service issue_type 1 testing network 2,3 6,7 failure 我从tblpro
id issue_name affected_server affected_service issue_type
1 testing network 2,3 6,7 failure
我从tblproducts和tblserver表中得到受影响的服务器和服务id我有以下查询,其中我只得到id=2的第一个受影响的服务器名称和id=6的受影响的服务名称我想检查受影响的服务器2,3和受影响的服务6,7的两个值我有以下查询我
SELECT
m.issue_name,m.id ,m.issue_type ,
m.priority ,m.status,m.description ,
m.start_date,m.end_date,m.duration,
s.name as server_name,p.name as product_name
from mod_networkstatus as m
LEFT JOIN tblservers as s ON m.affected_server=s.id
LEFT JOIN tblproducts as p ON m.affected_service=p.id where m.id=1
从这里我只得到了这个结果
issue_name server_name product_name
testing network Monitor Server Amazon S3
但是我想要监视服务器,服务器名称为server1,产品名称为amazons3,托管帐户,试试看-
SELECT
m.issue_name,m.id ,m.issue_type ,
m.priority ,m.status,m.description ,
m.start_date,m.end_date,m.duration,
s.name as server_name,p.name as product_name
from mod_networkstatus as m
LEFT JOIN tblservers as s ON find_in_set(s.id,m.affected_server)
LEFT JOIN tblproducts as p ON find_in_set(p.id,m.affected_service) where m.id=1
编辑1:
SELECT
m.issue_name,m.id ,m.issue_type ,
m.priority ,m.status,m.description ,
m.start_date,m.end_date,m.duration,
GROUP_CONCAT(s.name) AS server_name,
GROUP_CONCAT(p.name) AS product_name
FROM mod_networkstatus AS m
LEFT JOIN tblservers AS s ON FIND_IN_SET(s.id,m.affected_server)
LEFT JOIN tblproducts AS p ON FIND_IN_SET(p.id,m.affected_service)
WHERE m.id=1
GROUP BY m.id
它给出了可能的结果,但在不同的行中,但我希望在具有相同列的单行中server\u name=Monitor server,server1使用group\u concat函数在同一行中获得结果。