2017-05-31 7 views
-1

enter code hereに4つのテキスト行を結合すると、1つの文字列に1台の4つのテキスト行を結合する方法はありますか?例えばのMySQL:1つの文字列

: Table_A(ワード)、Table_B(ワード)、Table_C(ワード)、TABLE_D(ワード)、

+---------+---------+---------+---------+ 
| Table_A | Table_B | Table_C | Table_D | 
+---------+---------+---------+---------+ 
| this | is  | a  | test | 
+---------+---------+---------+---------+ 

どのように私はのようなクエリにすることができます。

select 'ok' 
from Table_A a, Table_B b, Table_C c, Table_D d 
where (a.word + ' ' + b.word + ' ' + c.word + ' ' + d.word = 'this is a test') 

を編集:私は()CONCAT()などの任意の関数を使用することはできません

+1

あなたはテーブルの一つでも複数のレコードを持っている場合は意図したとおりに動作しない可能性のある、クロスはここに参加やっています。ここで何をしようとしているのかを明確にすることはできますか? –

+0

を参照してください:[?なぜ私は非常に単純なSQLクエリであることを私には思える何のためにMCVEを提供する必要があります](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve非常にシンプルなSQLクエリー) – Strawberry

+0

こんにちは。私はあなたが答えを受け入れていないことに気付きましたが、あなたも明確化を与えていないので、答えが助けられましたか?もしそうなら、それを表示するには[同意する](https://meta.stackexchange.com/a/5235/266284)を押してください。 – philipxy

答えて

0

あなたはCONCAT()を使用して試すことができます:

私は上記のコメントで述べたように10
SELECT 'ok' 
FROM Table_A a, Table_B b, Table_C c, Table_D d 
WHERE CONCAT(a.word, ' ', b.word, ' ', c.word, ' ', d.word) = 'this is a test' 

、あなたがクロスをしているあなたは、各テーブルに複数のレコードを持つことを計画している場合うまくスケールしない場合があります4つのテーブルの間にここに参加します。

0

は、これは非常に好奇心ですが、concat_ws()をしたいように見える:

select 'ok' 
from Table_A a cross join 
    Table_B b cross join 
    Table_C c cross join 
    Table_D d 
where concat_ws(' ', a.word, b.word, c.word, d.word) = 'this is a test'; 
+0

OPは「1つのテーブルの3つのテキスト行」を望んでいるようです。私はここにそれを見ない。 – Strawberry

+0

@Strawberry私はあなたが質問のタイトルをあまりにも文字どおりに取っていると思います。確かに、ゴードンの答えは、OPに何を求めているかと思われる+1 –

+0

@TimBiegeleisen確かに、質問はあまり意味がありません。それはOPが「1つのテーブル」を指していることであり、4つではないことをかなり確信で​​きると私は思う。 – Strawberry

関連する問題