2012-01-19 15 views
1

特定のカラムの文字列の長さに基づいてmysqlのテーブルをクエリしようとしています。 mysqlにはLENGTH()という関数がありますが、それは文字列の長さを返します。私は、LENGTH()関数の結果に基づいてデータを取得できるようにしたい。カラム内の文字列の長さに基づくmysqlクエリ

例:動作しませんもちろんの

SELECT * table WHERE LENGTH(word) = 6 

。私はhttp://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function%5Flengthを通して読んだけど、私を助けるものは何も見つかりませんでした。

はい私はこれを達成するためにPhPで何かを作ることができましたが、私はそれをクエリレベルでやりたいと思います。

助けが必要ですか?

答えて

4

試してみてください。

SELECT * 
    FROM table 
    WHERE LENGTH(RTRIM(word)) = 6 
+1

'LENGTH()'の代わりに 'CHAR_LENGTH()'関数を使うことをお勧めします。これは、バイトの代わりに文字数をカウントする方法です。 –

+0

は完璧に機能し、最終的には「文字列長さ」、「可能な文字」、および「文字を含む」をベースにした結果を単語に取り込むクエリ文を作成しています。私は今までの最初の2つを持っている – user1130861

0

私はあなたが(wordtableNameの列の名前であると仮定して)、クエリSELECT * FROM tableName WHERE LENGTH(word) = 6;を使用したいと考えています。

これは大きなテーブルでは非常に不幸な解決策です。新しい列を作成してUPDATE tableName SET wordLength = LENGTH(word)を使用する必要があります。