我无法使用正则表达式在vb.net中使用我的sql查询。
如果我写
Dim localConnection As New MySqlConnection = ConnectionNew(DBName)
Dim da as MysqlDataAdapter
Dim ds as new DataSet
Dim rows as long
SQLstatement= "SELECT `col1` FROM `myTable` WHERE `col1` REGEXP '^[A-Z]BC$'"
da = New MySqlDataAdapter(SQLstatement, localConnection)
rows = da.Fill(Ds)
即使存在包含“ABC”的单元格,它也会返回null。当我直接在数据库上运行它时,它会正确返回行。
如果我删除[A-Z],它在两种情况下都能正常工作。
答案 0 :(得分:0)
是否可能涉及“二进制字符串”?
来自:http://dev.mysql.com/doc/refman/5.1/en/regexp.html
除了以外,REGEXP不区分大小写 与二进制字符串一起使用时。
它还会发出有关多字节字符的警告。
REGEXP和RLIKE运营商的工作 字节方式,所以它们不是 多字节安全,可能会产生 多字节的意外结果 字符集。另外,这些 运营商比较他们的人物 字节值和重音字符 即使a,也可能无法比较 鉴于整理将它们视为平等。
由于VB.Net在Unicode中工作,是否有可能在幕后发生某种字符集或代码页错位?