代码之家  ›  专栏  ›  技术社区  ›  user3346575

如何在MySql中查询格式化数据

  •  2
  • user3346575  · 技术社区  · 7 年前

    如何在MYSQL中查询格式不正确的数据?

    例如,如果我的表中有以下数据:

    1.John Doe
    2.john doe
    3.JOHN DOE
    4.joHn DoE.
    

    我正在寻找一个返回第2、3和4行的查询。

    2 回复  |  直到 7 年前
        1
  •  0
  •   Jay Shankar Gupta    7 年前
    SELECT id,name FROM `Table1` 
    WHERE `name` NOT REGEXP BINARY '([A-Z]{1,1}[a-z]+ [A-Z]{1,1}[a-z]+)$';
    

    输出

    id  name
    2   john doe
    3   JOHN DOE
    4   joHn DoE.
    

    现场演示

    http://sqlfiddle.com/#!9/3092b3/75

        2
  •  0
  •   Eriks Klotins    7 年前

    为了确保数据完整性,更好的做法是将姓名/姓氏/街道名称/地址等存储在单独的字段中,并且不使用任何大写字母。出于显示目的,可以应用大写。这样你就可以省去一些麻烦,弄清楚约翰=约翰=约翰。

    运行以下操作以规范化值:

     UPDATE Table1 SET name = LOWER(name)