0

如何找出列的值有多长。就像是:

SELECT * FROM `tablename` WHERE `field`.length > 20

我知道这种说法是错误的。我只是不知道如何表达它。我似乎找不到任何关于此事的文件。

所以我需要从表中选择电话字段超过 20 个字符的所有行。

我导入了一个文件,我的客户在 1 个字段中合并了 2 个电话号码,因此我需要获取所有受影响的行来修复它们。

谢谢您的帮助。

4

4 回答 4

2

您可以使用该length()函数来确定该字段中有多少个字符。

SELECT * 
FROM `tablename` 
WHERE length(`field`) > 20

如果你认为你会有空格,那么你可以将它与TRIM()

SELECT * 
FROM `tablename` 
WHERE length(trim(`field`)) > 20
于 2012-10-10T17:48:43.387 回答
2
SELECT * FROM tablename WHERE LENGTH(field) > 20

在这种情况下检查文档;http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

于 2012-10-10T17:48:47.410 回答
2

如果你想要以字节为单位的字段长度(ascii 字符),你可以使用LENGTH()函数,如果你想对 UTF-8 等国际字符集“多字节安全”,你可以使用CHAR_LENGTH()计算实际字符。

SELECT * FROM `tablename` WHERE CHAR_LENGTH(`field`) > 20
于 2012-10-10T17:53:11.930 回答
0

使用长度():

SELECT * FROM tablename WHERE LENGTH(field) > 20
于 2012-10-11T10:16:18.140 回答