2011-12-31 4 views
0

私は数百の文字を含むいくつかの行を持つCLIでMySQLデータベースを使用しています。したがって、私はそれぞれのクエリごとに部分文字列(columnName、1,20)を使用します。これは面倒です!すべてのクエリで部分列を通して列が実行されるように指定できるディレクティブはありますか?MySQL:サブストリングを実行するすべての列の指示?

ありがとうございます!

+1

あなたが複数の 'サブ()'の呼び出しで(1回)ビューを作成し、そのビューを使用することができます。 –

+0

これを行うと多くのデータを使用しませんか? – Ben

答えて

3
CREATE VIEW TableStripped AS 
SELECT AcolumnThatDoesntNeedStripping 
    , BcolumnThatDoesntNeedStripping 
    , ... 
    , SUBSTRING(columnA, 1, 20) 
    , SUBSTRING(columnB, 1, 20) 
    , SUBSTRING(columnC, 1, 20) 
    , ... 
    , SUBSTRING(columnZ, 1, 20) 

と、そのビューを使用します。

SELECT * 
FROM TableStripped 
+0

ありがとうございます!パーフェクトです! – dotancohen

+0

@dotancohen:これは大きなテーブルではパフォーマンスがひどいかもしれません。慎重に使用してください。 –

2

私はそのためのビューを作成したいと思います。例えば

あなたがテーブル

CREATE TABLE t1 (long_column varchar(8000)); 

を持っている場合、私は、ビュー

CREATE VIEW v1 AS SELECT SUBSTRING(long_column, 1, 20) AS long_column FROM t1; 

を作成し、v1.long_columnの代わりSUBSTRING(t1.long_column, 1, 20)を使用するすべてのクエリを書き直すと思います。

+0

パーフェクト、ありがとう! – dotancohen

2

create a viewは、列の一覧に部分文字列(1,20)の計算を追加し、その計算された列をクエリ式で使用できます。

その後、
+0

ありがとう、私はまだ意見を聞いていない。 – dotancohen

関連する問題