如何选择列的行以使行大小为 <= 5 ?是否有适用于大多数/所有数据库的查询?
例如。身份证,名字
仅选择名字超过 10 个字符的人。他们的名字太长了?
如果您一定要使用特定的 RDBMS,那么解决方案很简单。
Use the LENGTH function.
根据您的数据库,长度函数可以是 LEN、Length、CarLength。只需搜索谷歌就可以了。
根据你的问题
如何选择列的行以使行大小为<= 5?是否有适用于大多数/所有数据库的查询?
解决办法可以
SELECT * FROM TableName WHERE LENGTH(name) <= 5
如果您想要可以与几乎所有数据库一起使用的东西,并且我假设您要获取的字符串的长度非常小。示例 5 或 8 个字符,然后您可以使用类似这样的内容
SELECT *
FROM tab
WHERE
colName LIKE ''
OR colName LIKE '_'
OR colName LIKE '__'
OR colName LIKE '___'
OR colName LIKE '____'
OR colName LIKE '_____'
这适用于几乎所有主要的 DBMS。
见例子:
假设您想要字符长度,函数名称因 RDBMS 而异;
MySQL:CHAR_LENGTH()。
甲骨文:长度()。
SQL 服务器:LEN()。
PostgreSQL:CHAR_LENGTH() 或 LENGTH()。
SQLite:长度()。
如果您想要以字节为单位的长度,那就是;
MySQL:长度()。
甲骨文:LENGTHB()。
SQL 服务器:DATALENGTH()。
PostgreSQL:OCTET_LENGTH()。
例如,在 MySQL 中选择名称超过 10 个字符的所有行将是:
SELECT * FROM myTable WHERE CHAR_LENGTH(name) > 10;
在 sql 服务器 TSQL 中,您可以使用 len 函数。例如
SELECT * FROM people WHERE LEN(firstname) > 10
其中 people 是表名。
在 mysql 中,该函数称为“长度”而不是 len。
如果您从 Java 调用,则有可移植的JDBC 转义函数:
select {fn length('some text expression')} from sometable