如何找出列的值有多长。类似的东西:
SELECT * FROM `tablename` WHERE `field`.length > 20
我知道这种说法是错误的。我只是不知道该怎么说。我似乎无法找到有关此事的任何文件。
所以我需要从电话字段超过20个字符的表中选择所有行。
我导入了一个文件,我的客户在1个字段中合并了2个电话号码,因此我需要获取所有受影响的行来修复它们。
感谢您的帮助。
答案 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