检查字符串中的第一个单词是否满足 SQL 中的条件
Check if first word in string pleases condition in SQL
我正在尝试从数据库中的 user_agent
字段中过滤 google-bots。我正在使用 LIKE %text_I_want_to_check_%
并且它工作正常,因为到目前为止所有机器人命名都是唯一的,但是,AdsBot-Google
在字符串中不是唯一的,与其他 user_agents
的不同之处在于 AdsBot-Google
是字符串中的第一个条目。
user_agent
与 google-bot 的示例:
Mozilla/5.0 (Linux; Android 5.0; SM-G920A) AppleWebKit (KHTML, like Gecko) Chrome Mobile Safari (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html)
AdsBot-Google
的例子:
AdsBot-Google (+http://www.google.com/adsbot.html)
如您所见,两个示例都包含 AdsBot-Google
,唯一的区别是第二个示例将它放在字符串的第一个单词中。
我想要的输出:
SQL CASE 检查 AdsBot-Google
是否是字符串中的第一个文本,并且不会干扰 AdsBot-Google
位于字符串中间的其他情况。像这样:
CASE
WHEN (sessions.user_agent like AdsBot-Google) then 'AdsBot-Google-Mobile-iPhone'
SQL LIKE
运算符实际上可以检查以字符串开头的内容:
SELECT *
FROM sessions
WHERE user_agent LIKE 'AdsBot-Google%';
请注意,这只会匹配用户代理字段以 AdsBot-Google
开头的记录;它不会匹配 AdsBot-Google
出现在其他任何地方。
我正在尝试从数据库中的 user_agent
字段中过滤 google-bots。我正在使用 LIKE %text_I_want_to_check_%
并且它工作正常,因为到目前为止所有机器人命名都是唯一的,但是,AdsBot-Google
在字符串中不是唯一的,与其他 user_agents
的不同之处在于 AdsBot-Google
是字符串中的第一个条目。
user_agent
与 google-bot 的示例:
Mozilla/5.0 (Linux; Android 5.0; SM-G920A) AppleWebKit (KHTML, like Gecko) Chrome Mobile Safari (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html)
AdsBot-Google
的例子:
AdsBot-Google (+http://www.google.com/adsbot.html)
如您所见,两个示例都包含 AdsBot-Google
,唯一的区别是第二个示例将它放在字符串的第一个单词中。
我想要的输出:
SQL CASE 检查 AdsBot-Google
是否是字符串中的第一个文本,并且不会干扰 AdsBot-Google
位于字符串中间的其他情况。像这样:
CASE
WHEN (sessions.user_agent like AdsBot-Google) then 'AdsBot-Google-Mobile-iPhone'
SQL LIKE
运算符实际上可以检查以字符串开头的内容:
SELECT *
FROM sessions
WHERE user_agent LIKE 'AdsBot-Google%';
请注意,这只会匹配用户代理字段以 AdsBot-Google
开头的记录;它不会匹配 AdsBot-Google
出现在其他任何地方。