2017-06-22 29 views
0

我在编写MYSQL查询时遇到困惑。MYSQL:合并/ Concat数据如果名称存在于括号或外括号内

什么,我试图实现

CREATE TABLE paypal_ipn_orders 
    (`id` int, `name` varchar(15), `neighbor` varchar(100), `color` varchar(30)); 

INSERT INTO paypal_ipn_orders 
    (`id`, `name`, `neighbor` `desc`) 
VALUES 
    (1, 'roy', 'niclo', black), 
    (2, 'fosa','kol(niclo)', blue) 
    (3, 'hojo','niclo(abc)', green) 
    (4, 'sdojo','xxx(kkk)', osl) 

在niclo和科尔(niclo)我所试图做的是Concat的,或者邻居等于下架或外部数据合并邻居那里看的支架,但只有thorugh SQL查询

所以它会变得像(1, 'niclo', 'hojo roy fosa',black blue green)有没有办法做那个throguh sql查询?

回答

0

我想你可以只使用LIKE运营商在这里:

SELECT 
    'niclo', 
    GROUP_CONCAT(name), 
    GROUP_CONCAT(color) 
FROM paypal_ipn_orders 
WHERE 
    neighbor LIKE 'niclo(%' OR 
    neighbor LIKE '%(niclo)' OR 
    neighbor = 'niclo' 

演示在这里:

Rextester

+0

不,不,我想合并或如果名称中存在的特定CONCAT数据在支架下或支架外 – doe

+0

我可以只通过名称连接,但我想这样做,如果名称存在于支架 – doe

+0

'SELECT id,medicinename, GROUP_CONCAT(公司名称SEPARATOR '///')AS公司名称, GROUP_CONCAT(公司名称,描述SEPARATOR“/// ')AS说明, GROUP_CONCAT(剂量SEPARATOR '///')AS剂量, GROUP_CONCAT(副作用SEPARATOR' ///')AS sideeffects, GROUP_CONCAT(WARNINGS SEPARATOR'///')作为警告, GROUP_CONCAT(过量SEPARATOR'///')AS过量, GROUP_CONCAT(交互SEPARATOR'///')AS交互, GROUP_CONCAT(other SEPARATOR'///')AS other FROM medicine_raw_data GROUP BY LOWER(TRIM(medicinename));' – doe