MySQLのlike文について
MySQLにて特定のカラム内より、特定のテキストを含むレコードのみ抽出をしたいです。
以下のような構文を使用しておりますが、正しく抽出されません。
SELECT * FROM [テーブル名] WHERE [カラム名] LIKE '%抽出しない文字列%';
今回抽出しようとしているカラム内の文字列は平均で500文字前後あり、絵文字や_-などの記号も使用してあります。
※レコードによって、文章のはじめに抽出したい文字列が出てくるものもあれば、末尾に出てくるものもあり、前者であれば、ビーストモードで対応可能で、後者は使用文字のバイト数の関係で抽出不可でした。
こちらSQLでも同じ影響がありますでしょうか?
Comments
-
こんにちは。
ビーストモードでは、確かに文字列操作をするとバイト数の問題がありますね。
「MySql」⇒「Redshift」で試してみてはいかがでしょうか。
※Redshiftは日本語名は使用出来ませんので注意してください。
絵文字がどのようなモノを指しているか分かりませんが
通常STRINGとして扱われるものは、抽出出来るかと思います。
試しにMySqlで試してみました。
下記のデータがある場合に「like '%_あるく%'」とした場合、
想定では①のみ抽出されたいが、実際は①と④が抽出されました。
①01_あるく
②02_走る
③03_止まる
④04_ひたすらあるく
なので特定文字「_」などを別の文字列「XXXXXX」とかに置き換えてから、
抽出し再度置換するのが良いかもしれません。。。
これはやはり、ビーストモードや検索と同じような動きですね。
1 -
置換に関しても、対象セル内の文字数が多いためか正しく変換できないようです。
色々試しましたが、正しく変換できないので、他の方法を考えます。0 -
こんにちは。
エラー理由が「対象セル内の文字が多いため」であれば、SQL内にある一時テーブルのフィールド長を変更するのはいかがでしょうか。
例:ALTER TABLE テーブル名 MODIFY フィールド名 データ型
以前同様のケースがあった際に、テーブルの文字列長を変更して回避したケースがありました。
(仕様変更等で、もうできなくなっていたらすみません・・・)
ご確認よろしくお願いいたします。
1
Categories
- 7.7K All Categories
- 3 Connect
- 919 Connectors
- 244 Workbench
- 477 Transform
- 1.8K Magic ETL
- 60 SQL DataFlows
- 446 Datasets
- 38 Visualize
- 198 Beast Mode
- 2K Charting
- 8 Variables
- 1 Automate
- 348 APIs & Domo Developer
- 82 Apps
- Workflows
- 14 Predict
- 3 Jupyter Workspaces
- 11 R & Python Tiles
- 241 Distribute
- 59 Domo Everywhere
- 241 Scheduled Reports
- 15 Manage
- 36 Governance & Security
- 27 Product Ideas
- 1.1K Ideas Exchange
- Community Forums
- 14 Getting Started
- 1 Community Member Introductions
- 49 Community News
- 18 Event Recordings
- 579 日本支部