简体   繁体   中英

MySQL - Fetch rows where a field value is less than 5 chars

I need to fetch all the rows where the 'zip' field is less than 5 characters. How can I achieve this using only SQL? I google'd first, but only found info on CHAR_LENGTH().

ie, psudeo code: SELECT * FROM users WHERE STRLEN(zip_code) < 5

Thanks!

For MySQL you would use the LENGTH() function ie.

select * from users where length(zip_code) < 5

Refer to the docs at http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_length for more information.

You can use length

SELECT * FROM table WHERE LENGTH(myfield) < 5; 

Check this out for more info.

If you are searching for bad zip codes then char_length(zip_code) < 5 is a start, but it will still pass invalid ZIP codes.

use SELECT * from users where char_length(zip_code) < 5 OR zip_code NOT REGEXP '^([0-9]{5})$'

The regexp part basically searches for zip_codes where the first 5 characters are not numbers between 0-9

Have Fun

你可以做

SELECT * FROM table WHERE LENGTH(zip) <= 5;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM