mysql - SQL中如何匹配任意字母?

标签 mysql sql

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

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/

相关文章:

mysql - MYSQL 中 IF 语句中的 SET WHERE

php - 下拉列表仅显示单个值我的数据库中有多个值

sql - 选择两列的组合但不是序列

列名左连接字段值的 SQL 查询

java - DATENAME(q, getDate()) 在 MS sql server 中如何工作?

mysql - SQL 查询以根据组中缺少值来过滤记录

php - 匹配以单词显示,而不是 mysql 中的数字

MySQL - 为每个标识符保留最近的非空值

c# - 为什么我的 SQL 服务器的 c# 连接字符串不能使用 Windows 身份验证?

php - 如何清除SQL中的自增列并插入一组从1开始的新数字?