使用 LIKE 指定一组字符
Specifying a set of characters using LIKE
对于这个头脑简单的问题深表歉意,但我对此并不陌生。我正在使用 mySQL Workbench 6.2,我正在尝试编写一个简单的查询来匹配 cust_contact 列中以 J 或 M 开头的任何联系人姓名。我已经看到可以通过编写
来实现这一点
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE '[JM]%'
ORDER BY cust_contact;
但是,似乎不支持使用方括号。解决方法是
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE 'J%'
OR cust_contact LIKE 'M%'
ORDER BY cust_contact;
但这似乎不是一个非常优雅的解决方案。我在文档中找不到类似于 [] 的通配符的解释。这样做的正确方法是什么?
在MySQL中,为此使用正则表达式:
where cust_contact RLIKE '^[JM].*'
使用正则表达式(REGEXP 或 RLIKE)。
WHERE cust_contact RLIKE '^[JM].*'
文档是:http://dev.mysql.com/doc/refman/5.0/en/regexp.html#operator_regexp
对于这个头脑简单的问题深表歉意,但我对此并不陌生。我正在使用 mySQL Workbench 6.2,我正在尝试编写一个简单的查询来匹配 cust_contact 列中以 J 或 M 开头的任何联系人姓名。我已经看到可以通过编写
来实现这一点SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE '[JM]%'
ORDER BY cust_contact;
但是,似乎不支持使用方括号。解决方法是
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE 'J%'
OR cust_contact LIKE 'M%'
ORDER BY cust_contact;
但这似乎不是一个非常优雅的解决方案。我在文档中找不到类似于 [] 的通配符的解释。这样做的正确方法是什么?
在MySQL中,为此使用正则表达式:
where cust_contact RLIKE '^[JM].*'
使用正则表达式(REGEXP 或 RLIKE)。 WHERE cust_contact RLIKE '^[JM].*' 文档是:http://dev.mysql.com/doc/refman/5.0/en/regexp.html#operator_regexp