代码之家  ›  专栏  ›  技术社区  ›  Mike Aron

Mysql Regex以语言iso代码结尾,但不包含其他字符(非字母)

  •  -1
  • Mike Aron  · 技术社区  · 6 年前

    编辑: 我有一个带有'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_en my_option_de 但没有其他选项名

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

    我怎么能用Mysql REGEXP实现呢?谢谢

    3 回复  |  直到 6 年前
        1
  •  0
  •   Nick SamSmith1986    6 年前

    在MySQL regexp表单中,您需要

    SELECT *
    FROM yourtable
    WHERE option_name REGEXP  '^my_option_[a-z]{2}$'
    
        2
  •  0
  •   Kamil Gosciminski    6 年前

    这将丢弃每一行 option_name 开始于 my_option_adv :

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

    演示: db-fiddle.com

        3
  •  0
  •   Rick James diyism    6 年前
    WHERE CHAR_LENGTH(option_name) = 12
    

    会照你说的做。但我怀疑这还不够好。