我想返回某些字段遵循特定模式的行,例如字符串中的特定字符是字母还是数字。为了进行测试,我想返回第一个字母为任何字母的字段。我用了这段代码。
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]';