当我在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'
答案 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')