我想返回某些字段遵循特定模式的行,例如字符串中的特定字符是字母还是数字。为了测试它,我想返回第一个字母是任何字母的字段。我使用了这段代码。
SELECT * FROM sales WHERE `customerfirstname` like '[a-z]%';
它什么都不返回。所以我认为标准是第一个字符是一个字母,然后任何后续字符都没有关系。 以下代码有效,但限制了第一个字符为 a 的行。
SELECT * FROM sales WHERE `customerfirstname` like 'a%';
我是不是不懂模式匹配?不是任何字母或数字的 [a-z] 或 [A-Z] 或 [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]';
关于mysql - SQL中如何匹配任意字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53877586/