問題タブ [concat-ws]

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 に答える
256 参照

java - concat_ws と null フィールドを Hibernate する

休止状態のクエリ内で CONCAT_WS を使用して、巨大な文字列を作成し、like '%value%'. 正常に動作しますが、一部のレコードでは一部のフィールドが null です。たとえば、actIdが null の場合、concat_ws 全体が null を返します。理由はわかりませんが、concat_ws は null 値を無視する必要があります。休止状態が null から getActNumber を呼び出そうとしているためでしょうか? とにかく、私はこの問題を解決しようと懸命に努力しています。

ありがとう!

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

mysql - MySQL クエリ: CONCAT_WS と COALESCE を使用して、カンマ区切りの結果値を適切に識別し、元の概念に再変換する方法

文字列ベースの結果をコンマ区切りで MySQL データベース テーブルに保存することについては、多くの議論があります。ここで私自身の哲学的なコメントでこれを拡張したくはありません。この問題は私にはよく知られているが、今のトピックではないと言うことから始めたいと思います.

トピックは、私がそのような状況を評価する必要があるということです。データは文字列ベースの暗号として保存されます。これらのサイファーのそれぞれは、特定の種類の手術が行われた後の医学的合併症を示しています。

例:

MySQL データベース テーブル「合併症」には、「外科的修正の指示」(VARCHAR[50]) と呼ばれるフィールドが含まれており、「3、7、9、16」などのデータ エントリが保存されます。ユーザーに選ばれました。

今、私は次のことをしたい:

「3」、「7」、「9」、「16」が何を表しているか知っています。次のような MySQL SELECT クエリを使用して、これらのサイファーを元の概念 (「体重の回復」、「減量の失敗」など) として再表示したいと考えています。

あなたは今、「なぜこの男はそんなに状況的なのか?」と尋ねるかもしれません。または「なぜ彼はPHPを使用してそれを行わないのですか?」。私はPHPを使用してそれを行いますが、別のコンテキストで行います。ここでは、SQL クエリを使用して直接評価する必要があります。これは、私が作成したものではないこのコードでは、二次的に処理される Excel CSV ファイル内の結果セットを自動的に作成するためにすべてのデータが抽出されるためです。車輪を新たに再発明したくありません。 .

さて、上記のクエリは、私がやりたいことをしません。私の例では、この「3、7、9、16」の文字列から「体重の回復、逆流、栄養失調、総胆管結石症 nach マゲン バイパス」の表示を取得したいと考えています。

... LIKE "%3%" ... はここではうまくいきません。

「FIND_IN_SET('3', op.OP2RevisionIndikation)」を使用するいくつかの推奨事項がありますが、ここでは、メインの SELECT ステートメントではなく、COALESCE と CONCAT_WS を使用した CASE WHEN THEN ELSE END プロシージャにいます。

その文字列 "3, 7, 9, 16" を元の値にマッピングして正しく評価し、MySQL にそのように表示させる方法を知っている人はいますか?

私は十分に徹底的で十分に理解できていることを願っています。

よろしくお願いいたします。ご協力いただきありがとうございます。

マーカス

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

mysql - カスタム関数の結果を含む mysql concat_ws により、'%str%' のようなものが機能しなくなります

だから私は動作する次のSQLを持っています:

これは、「ContinentalContiCrossContact® LX21549340225/65R17」などの任意の列に検索文字列を含むレコードを返す場合に問題なく機能します。

しかし、サイズから数値だけを一致させたいと思ったので、ここで巻いたカスタム関数を追加しました: How to get only Digits from String in mysql?

この関数ができたので、結果の数値を連結して検索に使用したいと思います。

そこでsize、congat に ExtractNumber( )を追加しました。

関数が含まれている場合、類似検索は一致を見つけることができません。ただし、特定のブランド名をチェックする where 条件に変更すると...

次に、内部の関数との連結が実際に機能し、「2147483647ContinentalVancoFourSeason 20473361205/7....」を返すことがわかりますが、この結果の文字列に対して like を実行すると、必要なときに一致しません。

一部の列には特殊な文字があり、関数の結果を utf8 にキャストしようとしましたが、効果がありませんでした。

この連結文字列で好きなことができない理由はありますか?

更新:現在は機能しています..イテレータ関数自体の中に変換を入れる必要がありました。

何らかの理由で、内部の関数を使用して変換またはキャストすると正しい結果が生成されますが、その後の類似比較の一致は許可されません。

したがって、次のクエリ

望ましい結果が得られますが、本当に奇妙な新しい問題が発生しました..

まったく同じクエリを実行しても、DESC ではなく ASC で並べ替えると、0 の結果が得られます。

順序が天候に影響し、結果が返されるのは本当に奇妙です。抽出番号関数が削除された場合、どちらの順序でも結果が返されます。

関数を元に戻すと、降順で並べ替えた場合にのみ結果を取得できます。

この奇妙な動作が発生する理由を誰か教えてもらえますか?

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

mysql - MYSQL に null 値がある場合に GROUP_CONCAT する方法は?

(LEFT 結合から) 主キーに対して複数の値を返す長いクエリがあります。例:(2つのフィールドのみを表示しますが、約10のフィールドがあります)

GROUP_CONACT を使用すると、次のように返されます。

しかし、私が実際に欲しいのは:

使ってみた

戻り値:

LotID=2 は返されず、追加のカンマも返されます。

クリーンなレコードを取得するにはどうすればよいですか?