【发布时间】:2009-10-09 18:51:19
【问题描述】:
我的表中有一个 LINK 字段。有些行有链接,有些则没有。
我想选择所有存在 LINK 的行。 (长度大于 X 个字符)。
我该怎么写?
【问题讨论】:
-
什么是 LINK 字段?你的意思是,某种名称为“LINK”的 text/varchar 字段?
标签: mysql
我的表中有一个 LINK 字段。有些行有链接,有些则没有。
我想选择所有存在 LINK 的行。 (长度大于 X 个字符)。
我该怎么写?
【问题讨论】:
标签: mysql
怎么样:
SELECT * FROM sometable WHERE CHAR_LENGTH(LINK) > 1
这是MySql string functions page (5.0)。
注意我选择了CHAR_LENGTH而不是LENGTH,好像数据中有多字节字符你可能真的对有多少个字符感兴趣,而不是多少字节他们占用的存储空间。因此,对于上述情况,不会返回 LINK 是单个两字节字符的行 - 而使用 LENGTH 时会返回。
请注意,如果LINK 是NULL,则CHAR_LENGTH(LINK) 的结果也将是NULL,因此行将不匹配。
【讨论】:
select * from [tbl] where [link] is not null and len([link]) > 1
对于 MySQL 用户:
LENGTH([link]) > 1
【讨论】:
[identifier] 语法仅用于 MS SQL -- SQL Server 和 Access(据我所知)。这个问题是关于 MySQL 的。
以防万一有人想在 oracle 中找到方法并来到这里(比如我),语法是
select length(FIELD) from TABLE
以防万一;)
【讨论】:
试试:
SELECT
*
FROM
YourTable
WHERE
CHAR_LENGTH(Link) > x
【讨论】: