Mysql 查找名称介于两个字母之间的所有客户的列表

Mysql 查找名称介于两个字母之间的所有客户的列表,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,我的桌子在这里 顾客 CREATE TABLE `customers` ( `customer_id` int(11) DEFAULT NULL, `account_num` double DEFAULT NULL, `lname` varchar(50) DEFAULT NULL, `fname` varchar(50) DEFAULT NULL, `mi` varchar(50) DEFAULT NULL, `address1` varchar(50) DEFAULT

我的桌子在这里 顾客

CREATE TABLE `customers` (
  `customer_id` int(11) DEFAULT NULL,
  `account_num` double DEFAULT NULL,
  `lname` varchar(50) DEFAULT NULL,
  `fname` varchar(50) DEFAULT NULL,
  `mi` varchar(50) DEFAULT NULL,
  `address1` varchar(50) DEFAULT NULL,
  `address2` varchar(50) DEFAULT NULL,
  `address3` varchar(50) DEFAULT NULL,
  `address4` varchar(50) DEFAULT NULL,
  `postal_code` varchar(50) DEFAULT NULL,
  `region_id` int(11) DEFAULT NULL,
  `phone1` varchar(50) DEFAULT NULL,
  `phone2` varchar(50) DEFAULT NULL,
  `birthdate` datetime DEFAULT NULL,
  `marital_status` varchar(50) DEFAULT NULL,
  `yearly_income` varchar(50) DEFAULT NULL,
  `gender` varchar(50) DEFAULT NULL,
  `total_children` smallint(6) DEFAULT NULL,
  `num_children_at_home` smallint(6) DEFAULT NULL,
  `education` varchar(50) DEFAULT NULL,
  `member_card` varchar(50) DEFAULT NULL,
  `occupation` varchar(50) DEFAULT NULL,
  `houseowner` varchar(50) DEFAULT NULL,
  `num_cars_owned` smallint(6) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我必须弄清楚 查找第二个字母为“a”和“d”之间的所有客户的列表

我的查询未按需要运行

SELECT * 
FROM   customers
WHERE  fname  REGEXP '^[A-D]';
你可以试试这个

SELECT * 
FROM   customers
WHERE  fname  REGEXP '^.[A-Da-d]{1}';

它可以通过简单的LIKE语句而不是使用正则表达式来实现

SELECT * 
FROM   customers
WHERE  upper(fname)  LIKE '_[A-D]%';

我对正则表达式不太了解,但你最终可以像在'a','b','c','d'中的SUBSTRfname,2,1那样做。是的,你是对的
SELECT * 
FROM   customers
WHERE  upper(fname)  LIKE '_[A-D]%';