我正在尝试选择我的数据库中的所有字符串,该字符串以带有regexp的小写字母开头,但由于某种原因,它选择了所有以大写字母开头的字符串.我究竟做错了什么?
SELECT *
FROM `allData`
WHERE response REGEXP '^[a-z]'
LIMIT 0 , 30
Run Code Online (Sandbox Code Playgroud)
slu*_*ion 11
REGEXP不区分大小写,除非与二进制字符串一起使用.
因此,在使用二进制字符串时,您可能会有一些运气:
WHERE response REGEXP BINARY '^[a-z]'
Run Code Online (Sandbox Code Playgroud)
演示的合理愚蠢小提琴:http://sqlfiddle.com/#!9/ 7eade/3
编辑:正如Ray在评论中所说,你应该使用它[[:lower:]]来代替所有的校对,例如
WHERE response REGEXP BINARY '^[[:lower:]]'
Run Code Online (Sandbox Code Playgroud)