問題タブ [group-concat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2466 参照

mysql - mysqlマルチサブクエリgroup_concatクエリ

特定の町の自治区と郵便番号を表示しようとしています。

私のデータベースはかなりよく構成されており、町、郵便番号、自治区などのテーブルがあります。また、town_postcodeとtown_boroughの関係ごとにテーブルがあります。

理想的には、データを次のように返したいと思います。

「AbbeyWood」、「SE2」、「Bexley、Greenwich」、「Barbican」、「EC1、EC2」、「CityofLondon」

私はいくつかの異なるアプローチを試しましたが、私は近くにいますが、まだそこにはいません。

どんな助けもいただければ幸いです...:)これまで私は試しました

どちらが

私も試しました

どちらが

0 投票する
2 に答える
620 参照

mysql - 多次元のグループ化された配列を返すクエリ

1対多の関係にある2つのデータベーステーブルがある架空のシナリオ。テーブルBからリンクされたすべての行のネストされた配列を使用して、テーブルAの各行を返すことができるように、優れたクエリ関数を見つけようとしています。

結果を1つだけ返します

これは私が望むものを返しますが、私は文字列ではなく配列の後にあります(b.nameにコンマがあるかもしれません)

私は何が欠けていますか?

0 投票する
1 に答える
396 参照

mysql - 2 つの結合を持つ MySQL group_concat が望ましくない結果を返す

このクエリを実行すると、2 つの携帯電話番号と 1 つのカテゴリが取得されるはずですが、代わりに 2 つのカテゴリが取得されます。何が間違っていますか? 私はそれが私が物事に参加している方法に関係していると思いますか?

ユーザー、複数の imei を持つことができます、categoryjoin はユーザーを複数のカテゴリにリンクします

ご協力いただきありがとうございます。

0 投票する
1 に答える
2925 参照

doctrine - 教義でサブクエリを実行し、結果をオブジェクトに水和する方法は?

ドクトリンでやや複雑なクエリ、つまり group_concat を使用したサブクエリとの内部結合を実行したいと考えています。

プレーン SQL のクエリを参照してください。

1)教義でこれを行うにはどうすればよいですか? つまり、この通常の SQL を dql に変換するにはどうすればよいでしょうか?

2) 結果の Kinderen オブジェクトで追加のプロパティ (ピリオド) にアクセスできるようにしたいと思います。これはドクトリンのデフォルトの動作だと思いますか?

ドキュメントとグーグルを読んでも解決策が見つかりません。

ありがとう!

0 投票する
1 に答える
185 参照

mysql - 結合されたマルチリレーション MySQL DB での高度な検索

これは、私がやろうとしていることはかなり複雑であるため、説明するには少し高度かもしれません (少なくとも私にとっては)。

私は現在、PHP と MySQL で個人用の映画データベースを構築していますが、MySQL の部分が私を殺しています。現在のセットアップは次のようになります。

名前、説明、および値を含むメインの映画データベースがあり、オプションは 1 つ (年、年齢制限、メディアの種類 (DVD、Blu-Ray など) など) です。

言語、字幕、オーディオ形式などの追加のテーブルがあり、すべて 2 つの列があります。1 つは映画の ID 用で、もう 1 つはインデックス (言語 ID など) に一致します。これらはメイン テーブルと一緒に結合され、1 つのフィールドに連結されることになっています。

私の言語テーブルの例:

最適には、次のようなものが必要です。

字幕と言語を PHP 配列に展開できます。その部分は、特定のサブ ID またはラン ID を検索する必要がある部分まで、GROUP_CONCAT を使用して実際に問題なく動作しています。これは私がこれまで使用してきたクエリです。すべてのテーブル情報を書き出していませんが、アイデアが得られることを願っています。

私は group_concat_max_len を使用して BLOB を取得しないようにしています。これまでのところ、結合されたテーブルのうちの 2 つだけを group_concatting しようとしました (残りは後で追加します)。

これはまさに私が望むものを返しますが、結合されたテーブルごとに WHERE 句を 1 つしか持つことができません。そうしないと、0 行が返されます。繰り返しますが、1 つだけを検索すると、検索された番号/ID のみが GROUP_CONCAT'ted フィールドに返されます。

次に、IN() 関数を使用して修正しました。少なくとも私はそう思った。しかし、問題は、私が OR 検索と呼んでいるものでしか機能しないことです。追加:

字幕テーブルにない番号でも、一致する番号のみで行を返します。半分の検索ではこれで問題ありませんが、AND のような方法で検索する方法も必要です。

完全に再構築する必要があるのか​​、それともまったく別のクエリが必要なのかはわかりませんが、何らかの支援やヒントがあれば幸いです。

HAVING オプションも調べたことがありますが、私が理解している限りでは、私のクエリでは効果がありません。

ちなみに、これが不可能な場合は、結合されたテーブルを廃棄して、メインのムービー テーブルで簡単に検索できるフィールドに置き換えることを検討しました (この「構文」を使用するように: '#2##4#' とその後LIKE '%#2#%' AND '%#4#%' を使用して結果を照合するか、最後の手段として PHP を使用してそれを整理します (それを行うよりもむしろ死にたいです)。上記の解決策を修正して使用できる場合)。

私の頭痛を和らげてくれてありがとう!

0 投票する
2 に答える
308 参照

php - PHPでのexplode()の問題

PHPのexplode関数に問題があります。

私は次のようにデータベースから文字列を引き出しています:

これを$recordsetというオブジェクトにプルした後、explode関数を使用して配列を作成しています...次のようになります。

しかし、どういうわけか、配列は私が期待するものとは異なります...

これは、配列をエコーし​​たときに得られるものです。

ご覧のとおり、必要な値が得られません...ただし、データベースからの文字列が短い場合は、次のように言います。

上記のロジックは正常に機能します。

この問題をデバッグまたは解決する方法がわかりません。

助けてください?

0 投票する
1 に答える
1332 参照

sql - MySQL は FUNCTION で GROUP_CONCAT を返します

Windows Server 2008 で MySQL Server 7.0 を使用しており、関数で GROUP_CONCAT の結果を返そうとしています。一般的な SQL は次のとおりです。

これにより、次の結果が得られます。

エラー 1415 (0A000): 関数から結果セットを返すことはできません

マニュアル(http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html)をチェックして読んだ

group_concat_max_len が 512 以下でない限り、結果の型は TEXT または BLOB です。この場合、結果の型は VARCHAR または VARBINARY です。

group_concat_max_len の値をデフォルト値から 512 に変更し、My.ini で 256 に変更しました (そして MySQL サービスを再起動しました)。を使用して変更を確認しました

mysql> 「%concat%」などの変数を表示します。

どんな助けでも大歓迎です!

0 投票する
3 に答える
5889 参照

mysql - WHERE句INgroup_concat

次のクエリがあります。

''を含まないジョブフィールドのみを連結することは可能ですか?その場合、その方法は?「ジョブ」がないものが必要なため、WHERE句を実行できません。

次の表を想像してください。

現在のクエリの結果は次のようになります。

しかし、私はそれを次のようにしたいと思います。

(このテーブルのロジックは気にしないでください。これは、物事を明確にするための単純な例にすぎません)

この理由は、phpでGROUP_CONCAT(job SEPARATOR'、')をexplode()するためです。実際のテーブルでは、1000の役に立たない,,'が簡単に存在するため、explode関数が非常に遅くなります。ありがとう、

lordstyx。

0 投票する
3 に答える
55690 参照

sql - MySQL:GROUP_CONCATとLEFT JOIN

MySQLの「GROUP_CONCAT」関数で問題が発生しています。簡単なヘルプデスクデータベースを使用して、問題を説明します。

このヘルプデスクデータベースには2つのチケットがあり、それぞれに2つのソリューションエントリがあることに注意してください。私の目標は、SELECTステートメントを使用して、データベース内のすべてのチケットとそれに対応するソリューションエントリのリストを作成することです。これは私が使用しているSELECTステートメントです。

上記のSELECTステートメントの問題は、1行だけを返すことです。

チケット1とチケット2の両方のソリューションエントリを含むチケット1の情報を返していることに注意してください。

私は何が間違っているのですか?ありがとう!

0 投票する
3 に答える
1311 参照

mysql - MySQL group_concat の問題

ご挨拶、

私はgroup_concat関数に非常にトリッキーな問題があり、何日か成功しなかったので、それを解決する方法を考えています。

3 つのテーブルがあります。

結果列として関連付けられているすべてのタグを使用して、すべてのタスクを取得する必要がある場合、次のクエリで問題はありません。

問題は、1 つの EXACT タグからタスクを選択する必要がある場合ですが、タスクに関連付けられたすべてのタグを含むタグ列を保持する必要がある場合です。次のクエリを試してみましたが、結果が WHERE tag_id = 5 によって制限されているため、group_concat 関数は id = 5 のタグのみを取得します。たとえば、「work」:

私が達成しようとしている結果は次のとおりです。

これを解決する方法についての提案をありがとうございました!