查找名称中包含两个字母之间字母的所有客户的列表

时间:2018-03-20 13:17:08

标签: 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 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]';

3 个答案:

答案 0 :(得分:1)

你可以试试这个。

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

SQLFiddle

答案 1 :(得分:0)

SELECT * 
FROM   customers
WHERE  SUBSTR(fname,2,1) REGEXP '^[A-D]';

答案 2 :(得分:0)

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

class