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

How to query for formatted data in MySql

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

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

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

我正在寻找 return 第 2、3 和 4 行的查询。

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

为确保数据完整性,更好的做法是将 names/surnames/street names/addresses 等存储在单独的字段中,并且不要大写。出于显示目的,您可以应用大写。这样你就可以省去计算 if John = john = jOhn 的麻烦。

运行 以下规范化值:

 UPDATE Table1 SET name = LOWER(name)