如何仅将特定值添加到列?

时间:2019-05-28 08:22:52

标签: mysql sql

如何确保仅在获得价值后才合并一个价值? 例如,消息是否已包含文本“ cat”,我如何使“ dog”不包含?

SELECT name, message,

concat(

if(message like '%cat%', 'cat', ''),
if(message like '%dog%', 'dog', ''),
) as intent

FROM table;

2 个答案:

答案 0 :(得分:3)

使用CASE表达式:

SELECT
    name,
    message,
    CASE WHEN message LIKE '%cat%' THEN 'cat'
         WHEN message LIKE '%dog%' THEN 'dog' END AS intent
FROM yourTable;

答案 1 :(得分:0)

您可以使用DISTINCT一次选择一个值,如下所示-

SELECT group_concat(DISTINCT N) 
FROM 
(
    select 'Dog' N UNION ALL
    SELECT 'CAT' UNION ALL
    SELECT 'CAT'
)A