选择具有最大字符串长度的结果

时间:2012-08-21 01:42:40

标签: mysql sql

我有一个看起来像这样的表:

+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| name  | varchar(30)      | NO   |     |         |                |
+-------+------------------+------+-----+---------+----------------+

非常简单的表格。 我试图找到一种方法,只选择最多8个字符的结果,原因有两个:

1)为记录集创建的HTML表格太窄,无法使用超过8个字符的任何内容。

2)我们不能在显示时截断名称。

我正在查看MySQL手册,但找不到任何可靠的结果。我将尝试在where子句中使用char_length,看看我能想出什么,并将发回我找到的内容,但我希望之前有人这样做过。

1 个答案:

答案 0 :(得分:5)

您需要使用CHAR_LENGTH来获取字符的长度。尝试:

SELECT *
FROM tableName
WHERE CHAR_LENGTH(name) <= 8       -- selects 8 characters or below
-- WHERE CHAR_LENGTH(name) = 8     -- selects exactly 8 characters

其他信息:

LENGTH()返回以字节为单位的字符串长度。
CHAR_LENGTH()返回以字符为单位测量的字符串长度。

select length(_utf8 '€') as ByteCount, char_length(_utf8 '€') LengthCount

--  Result
--  ============+==============
--  ByteCount   +   LengthCount
--  ============+==============
--         3    +           1
--  ============+==============
相关问题