检查字符串中的第一个单词是否满足SQL

时间:2020-02-07 10:40:31

标签: sql sql-like

我正在尝试从数据库中的user_agent个字段中过滤google-bots。我正在使用LIKE %text_I_want_to_check_%,它可以正常工作,因为到目前为止,所有漫游器命名都是唯一的,但是AdsBot-Google在字符串中不是唯一的,与其他user_agents的不同之处在于{{ 1}}是字符串中的第一项。

使用Google-bot的AdsBot-Google示例:

user_agent

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) ,唯一的区别是第二个示例在字符串的第一个单词中包含它。

我想要的输出: SQL CASE检查AdsBot-Google是否是字符串中的第一文本,并且不干扰AdsBot-Google在字符串中间的其他情况。像这样:

AdsBot-Google

1 个答案:

答案 0 :(得分:3)

SQL LIKE运算符实际上可以检查以字符串开头的内容:

SELECT *
FROM sessions
WHERE user_agent LIKE 'AdsBot-Google%';

请注意,这只会匹配用户代理字段以AdsBot-Google开头的记录;它与其他任何地方发生的AdsBot-Google都不匹配。

相关问题