考虑这样的表datatbl

+----------+
| strfield |
+----------+
|    abcde |
|    fgHIJ |
|    KLmno |
+----------+


我想写这样的查询:

select * from datatbl where strfield rlike '[a-z]*';


与在非SQL正则表达式中一样,我想返回带有abcde的行,但不返回带有大写字母的行。我似乎找不到简单的方法来做到这一点。我想念一些愚蠢的东西吗?

谢谢,

最佳答案

MySQL REGEXP / RLIKE很烂-您需要将数据强制转换为BINARY以便区分大小写:

SELECT *
  FROM datatbl
 WHERE CAST(strfield  AS BINARY) rlike '[a-z]*';


您会在comments for the REGEXP/RLIKE documentation中发现它。

07-24 22:26