2017-06-22 122 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