如何使用mysql如:SELECT * FROM`tablename` WHERE`field`.length> 20

时间:2012-10-10 17:46:51

标签: mysql

如何找出列的值有多长。类似的东西:

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

我知道这种说法是错误的。我只是不知道该怎么说。我似乎无法找到有关此事的任何文件。

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

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

感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

您可以使用length()功能确定字段中包含的字符数。

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

如果您认为自己有空格,则可以将其与TRIM()结合使用:

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

答案 1 :(得分:2)

SELECT * FROM tablename WHERE LENGTH(field) > 20

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:0)

使用lenght():

SELECT * FROM tablename WHERE LENGTH(field) > 20