3

私はこのようなテーブルを持っています:

+-------+------------------+------+-----+---------+----------------+
| 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を使用してみて、何ができるかを確認し、見つけたものをポストバックしますが、誰かが以前にこれを行ったことを期待しています。

4

1 に答える 1

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
--  ============+==============
于 2012-08-21T01:45:32.533 に答える