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]%';