从给定列开始区分大小写的字符串的一部分

时间:2013-12-16 13:19:55

标签: mysql case-sensitive

我已经搜索了几个小时的解决方案,但找不到办法(似乎不可能)。我收集用户代理,推荐值等用户数据。

因此,一些引用值包含搜索关键字的查询字符串,其中有时搜索的关键字是大写的,有时是小写或混合的。

我想要实现的只是它们的引用值具有大写字符串的字段。

所以,例如,我想只得到这样的字段:

bing.com/?q=HOW+TO+PLAY+TENNIS

但不是这样的字段:

bing.com/?q=how+to+play+tennis

或像这样(混合情况)

bing.com/?q=HOW+to+play+tennis

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您发现默认排序规则不区分大小写。但是,您可以指定区分大小写的排序规则,这将按预期工作:

col_name COLLATE latin1_general_cs LIKE 'bing.com/?q=HOW+TO+PLAY+TENNIS'

见这里:http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html

答案 1 :(得分:0)

我希望我理解你的问题。 那么选择所有查询并在之后通过preg_match_all过滤它们。 使用这样的模式:

'/.*?\/\?q=[A-Z+]+/'

它没有经过测试,你应该给出一个想法。