繁体   English   中英

如何匹配SQL中的任何字母?

[英]How to match any letter in SQL?

我想返回某些字段遵循特定模式的行,例如字符串中的特定字符是字母还是数字。 为了进行测试,我想返回第一个字母是任何字母的字段。 我用了这段代码。

SELECT * FROM sales WHERE `customerfirstname` like '[a-z]%';

它什么也不返回。 因此,我认为准则是第一个字符是字母,然后任何后续字符都没有关系。 以下代码有效,但是限制了第一个字符为a的行。

SELECT * FROM sales WHERE `customerfirstname` like 'a%';

我不了解模式匹配吗? 是不是字母或数字是[az]或[AZ]或[0-9]? 另外,如果我想对字符串中的第二个字符运行此测试,我不会使用

SELECT * FROM `sales` WHERE `customerfirstname` like '_[a-z]%' 

这适用于SQL和MySQL。 我在phpmyadmin中这样做。

您要使用正则表达式:

SELECT s.* 
FROM sales s
WHERE s.customerfirstname REGEXP '^[a-zA-Z]';

这可以通过正则表达式来实现。

SELECT * FROM sales WHERE REGEXP_LIKE(customerfirstname, '^[[:alpha:]]');

^表示字符串的开头,而[:alpha]字符类与任何字母字符匹配。

以防万一,这里还有一些其他的字符类,您可能会发现它们有用:

  • alnum :字母数字字符
  • digit :数字字符
  • lower :小写字母字符
  • upper :大写字母字符

有关更多信息,请参见mysql regexp文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM