带有多个LIKE选项的SQL CASE语句

时间:2016-08-25 14:43:42

标签: sql insert case

我正在尝试使用USER_AGENT来确定用户点击我的链接是否正在使用移动设备。每次点击都会在我的表格中创建一行,如果用户在移动设备上,我会尝试插入“1”,如果不是,则尝试插入“0”。

我提出了以下SQL语句。这会有用吗?有没有办法将所有这些案例合并为一行,因为它们都会产生相同的值(1)?我怎样才能优化速度?我愿意接受任何建议。谢谢!

INSERT INTO click_table(mobile_agent)
VALUES
(
    CASE
        when user_agent_string LIKE '%mobi%' THEN '1'
        when user_agent_string LIKE '%iphone%' THEN '1'
        when user_agent_string LIKE '%ipad%' THEN '1'
        when user_agent_string LIKE '%android%' THEN '1'
        when user_agent_string LIKE '%blackberry%' THEN '1'
        when user_agent_string LIKE '%blazer%' THEN '1'
        when user_agent_string LIKE '%bolt%' THEN '1'
        when user_agent_string LIKE '%symbianos%' THEN '1'
        when user_agent_string LIKE '%doris%' THEN '1'
        when user_agent_string LIKE '%dorothy%' THEN '1'
        when user_agent_string LIKE '%fennec%' THEN '1'
        when user_agent_string LIKE '%gobrowser%' THEN '1'
        when user_agent_string LIKE '%iemobile%' THEN '1'
        when user_agent_string LIKE '%iris%' THEN '1'
        when user_agent_string LIKE '%maemo%' THEN '1'
        when user_agent_string LIKE '%mib%' THEN '1'
        when user_agent_string LIKE '%minimo%' THEN '1'
        when user_agent_string LIKE '%netfront%' THEN '1'
        when user_agent_string LIKE '%mini%' THEN '1'
        when user_agent_string LIKE '%semc%' THEN '1'
        when user_agent_string LIKE '%skyfire%' THEN '1'
        when user_agent_string LIKE '%teashark%' THEN '1'
        when user_agent_string LIKE '%teleca%' THEN '1'
        when user_agent_string LIKE '%uzardweb%' THEN '1'
        when user_agent_string LIKE '%docomo%' THEN '1'
        when user_agent_string LIKE '%vodafone%' THEN '1'
        when user_agent_string LIKE '%playbook%' THEN '1'
        else '0'
    END
);

0 个答案:

没有答案