mariadb vs mysql *两者如何处理SELECT *来自客户所在城市,如“ [acs]%”;

时间:2019-05-04 18:46:59

标签: mysql sql mariadb

当我在MySql上运行以下命令时:

SELECT * FROM Customers WHERE City LIKE '[acs]%';

我得到了预期的结果。

但是,对mariadb的同一查询返回一个空集。我在做错什么吗?

我看了看文档,似乎他们希望它更像

SELECT * FROM Customers WHERE City RLIKE '(a|c|s)'. 

是否有一个对两个都适用的命令?我应该使用REGEXP吗?

SELECT * FROM Customers WHERE City REGEXP 'a|c|s'

2 个答案:

答案 0 :(得分:0)

您可以使用REGEXP函数吗?

SELECT * FROM Customers WHERE City REGEXP '[acs]'

答案 1 :(得分:0)

此查询不太可能在MySQL上返回结果:

SELECT *
FROM Customers
WHERE City LIKE '[acs]%';

为什么?我所知道的城市名称都没有字符'['。而且,如果确实如此,则他们使用字符']'的可能性似乎更低。

您可能将MySQL与SQL Server混淆了。后者扩展了LIKE模式以包括字符类。 MySQL中的等效逻辑是:

WHERE City REGEXP '^[acs]'

或者,如果您愿意:

WHERE LEFT(City, 1) IN ('a', 'c', 's')