获取第一个字符不是字母数字的行

Dan*_*ake 13 regex mysql sql database

我正在为我正在开发的一个小项目添加一些新功能,其中一个是alpha分页,看起来像

#0-9 ABCDE ... XYZ

我可以使用类似的东西轻松地通过他们的第一个字母获取项目

SELECT * FROM ... WHERE name LIKE 'A%' ...
Run Code Online (Sandbox Code Playgroud)

将以数字和所有其他字符开头的所有内容分组有点困难,我认为它必须使用MySQLs REGEXP.

为了清楚起见,我需要帮助创建两个查询,这些查询将获取所有行

  • 列的第一个字符是数字
  • 列的第一个字符不是字母数字

mol*_*olf 36

第一个字符是数字:

SELECT * FROM ... WHERE name REGEXP '^[0-9]';
Run Code Online (Sandbox Code Playgroud)

第一个字符不是字母数字:

SELECT * FROM ... WHERE name REGEXP '^[^0-9A-Za-z]';
Run Code Online (Sandbox Code Playgroud)

(请注意,这是从不同的NOT REGEXP ^[0-9A-Za-z],因为你似乎想要匹配时,有实际上是第一个字符.)

你或许可以替代[^[:alnum:]][^0-9A-Za-z],但我没有测试它.可以肯定替代[[:digit:]][0-9],但它是更长的时间.:-)

另请参阅MySQL REGEXP参考.