2016-10-12 5 views
-2

Driver || Helper || Gardenのような内容を含む列を持つ表があります。私はこのテーブルを新しいシステムにエクスポートしたいと思っています。そこでは、各スキルごとに異なる列があります。1つの列と複数のLIKEを含むSQLクエリ

質問:このような情報を素晴らしいSQLエクスポートでどのように取得できますか。

SELECT user_id, driver, helper, garden FROM `ujc72_comprofiler` WHERE cb_erfahrungen LIKE "%Driver%" 

特定のスキルを持つユーザーが表示されますが、1人のユーザーに対して複数の列をエクスポートする必要があります。

+0

FYI:_ "ここでは、各ユーザーに異なる列があります。スキル" _は_ "ではありません。それは、おそらくユーザと他のユーザを参照する(または参照する)ユーザを参照する約2つのカラムを持つ別々のテーブルです。各userレコードはこの 'user_skills'テーブルに_0〜many_レコードを持っています。 ...別々の列はまだあなたが今明らかにしているものから一歩上がっています。 – Uueerdo

+0

これはひどい響きのあるスキーマです – Drew

+0

ujc72_comprofilerの構造は何ですか? cb_erfahrungenはどこにありますか? –

答えて

1

文字列を分割する必要があります。それで、Driver | Helper | GardenをDriver、Helper、Garderの列に分けます。

この機能はmysqlにはありません。自分で作成する必要があります。 チェックは、このリンク:https://blog.fedecarg.com/2009/02/22/mysql-split-string-function/


また、あなたはSUBSTRING_INDEX機能で動作することがあります。

mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2); 
     -> 'www.mysql' 
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2); 
     -> 'mysql.com' 
0

このクエリを使用してください:select column_name, column_name, column_name from table_name where column_name like '%driver%'私はこれをあなたが探していると思う。

0

列の選択リストは、時間あなたに固定しなければならないので、あなたはSQLでこの困難を見つけていますクエリを準備します。結果セットの列の数をデータ内のパターンに合わせて自動的に拡張できるSQLの機能はありません。

SQLでこれを行おうとしないでください。簡単なSQLクエリを実行するスクリプトを作成し、スクリプトコードで文字列を分割します。

ほとんどすべての言語には、文字列を簡単に配列に分割する機能があります。

ジョブには適切なツールを使用してください。

関連する問題