MySQL正则表达式以语言ISO代码结尾,但不包含其他字符(非字母)

时间:2018-08-06 11:41:50

标签: mysql regex

编辑: 我有一个带有“ option_name”的mysql表行。

选项名称为:

my_option_en
my_option_de

my_option_adv_en
my_option_adv_de
my_option_sc_en
my_option_sc_de
my_option_labs_en
my_option_labs_de

对选项名称my_option_的查询应返回my_option_enmy_option_de,但不返回其他任何选项名称

我需要的是查找以2个任意字母结尾的给定字符串(语言iso  代码),并且2个语言的等号后没有任何字符。

如何使用Mysql REGEXP实现它?谢谢

3 个答案:

答案 0 :(得分:0)

这将丢弃option_namemy_option_adv开头的每一行:

select option_name
from yourtable
where not(option_name regexp '^my_option_adv')

此处演示: db-fiddle.com

答案 1 :(得分:0)

在MySQL regexp表单中,您将需要

SELECT *
FROM yourtable
WHERE option_name REGEXP  '^my_option_[a-z]{2}$'

答案 2 :(得分:0)

WHERE CHAR_LENGTH(option_name) = 12

将完全按照您所说的去做。但是我怀疑那还不够。