我尝试找到与以下内容匹配的字符串

989X1[OPTIONAL[a-z]]


这是我尝试过的:

... where x LIKE '989X1[a-z]?'
... where x LIKE '989X1[a-z]'


但第一个查询也匹配“ 989X10a”,
没有可选字符串,另一个不匹配989X1

亲切的问候
哈森

最佳答案

使用LIKE最接近的方法是使用下划线:

where x = '989X1' OR x LIKE '989X1_'


但这将匹配任何单个字符,而不仅仅是字母。相反,您可以通过REGEXP更加接近:

where x REGEXP '989X1[a-z]?'   -- or REGEXP '^989X1[a-z]?$' for an exact match


即使使用REGEXP也不准确,因为REGEXP不区分大小写,因此范围也是如此。

关于mysql - SQL查找字符串加选项char,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45009400/

10-09 09:32