MySQL SQL質問応答スレ [無断転載禁止]©2ch.net (150レス)
MySQL SQL質問応答スレ [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/db/1478776715/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
92: NAME IS NULL [] 2022/09/26(月) 16:15:19.98 ID:CFgRtkvv UNIONなどの集合演算子は列名が揃ってないと使えないからな http://mevius.5ch.net/test/read.cgi/db/1478776715/92
93: NAME IS NULL [sage] 2022/09/26(月) 17:20:55.87 ID:??? >>91 おまえどう考えても勘違いしてるぞ 上塗り重ねず自重しとけ http://mevius.5ch.net/test/read.cgi/db/1478776715/93
94: NAME IS NULL [sage] 2022/09/26(月) 17:31:17.14 ID:??? カツカレーだとライスにはマッチしないんだな http://mevius.5ch.net/test/read.cgi/db/1478776715/94
95: NAME IS NULL [sage] 2022/09/26(月) 17:42:01.11 ID:??? >>90 選択肢はブルートフォース、n-gram、 形態素解析、マッピングテーブルくらいかな どれを選ぶかは用途次第 ブルートフォースは「カツカレー」というキーワードとテーブルの列名を1件1件比較して キーワード内の部分文字列が列名に合致するかどうかを判断していく めちゃ遅くなるけどデータ量と要求速度によってはこれでいい場合もある n-gramで例えば文字単位で3文字ずつのまとまり(trigram)に分解すれば 「カツカレー」は「カツカ」「ツカレ」「カレー」の3つになる この3つのキーワードともとの単語でテーブルを検索して合致するものがあるかどうか見る 形態素解析はそれ用のライブラリ使って 「カツカレー」を「カツ」と「カレー」という単語単位に分解して検索する マッピングテーブルは 「カツカレー」というキーをマスタテーブルの「カレー」にマッピング 「カツ」にマッピングしたりする可能性もあるから1対多 http://mevius.5ch.net/test/read.cgi/db/1478776715/95
96: NAME IS NULL [] 2022/09/26(月) 18:45:39.41 ID:CFgRtkvv 動的に列名違いのSQLを組み立てるなんてありえない。 http://mevius.5ch.net/test/read.cgi/db/1478776715/96
97: NAME IS NULL [sage] 2022/09/26(月) 19:18:35.82 ID:??? >>95 >>96 SQLで出来ないことが分かっただけでも収穫ですが さらに解決のヒントをいただきありがとうございます ブルートフォースって言うのですか PHPで作ってますがロジックで判断するやり方はちらっと頭に浮かんだのですが 性能がめちゃ心配で脳内却下してました n-gramはちょっと分かりませんでした 形態素は解析エンジンを信用しきれなくて… というわけで力作業でマッピングテーブルを作るか それかブルートフォースでやるか 検討したいと思います http://mevius.5ch.net/test/read.cgi/db/1478776715/97
98: NAME IS NULL [] 2022/09/26(月) 19:38:59.67 ID:CFgRtkvv やはり自作自演か http://mevius.5ch.net/test/read.cgi/db/1478776715/98
99: NAME IS NULL [sage] 2022/09/26(月) 22:34:58.61 ID:??? >>97 SQLでというか>>95の選択肢はどれもストアドやUDF使えばDB側でできるよ 特にブルートフォースでやるならDB側でやったほうが性能的には断然いい http://mevius.5ch.net/test/read.cgi/db/1478776715/99
100: NAME IS NULL [sage] 2022/09/26(月) 22:48:14.01 ID:??? 設計の最初からやり直した方が速そう http://mevius.5ch.net/test/read.cgi/db/1478776715/100
101: NAME IS NULL [sage] 2022/09/27(火) 19:57:35.44 ID:??? >>99 ストアドとかUDFとか知らなかった 教えてくれてありがとう http://mevius.5ch.net/test/read.cgi/db/1478776715/101
102: NAME IS NULL [] 2022/09/27(火) 21:49:35.32 ID:qnEHOR6B >>101 MySQLのストアドプロシージャは最悪の仕様だから覚悟しとけ! http://mevius.5ch.net/test/read.cgi/db/1478776715/102
103: NAME IS NULL [sage] 2022/09/29(木) 00:05:53.71 ID:??? しらんけどこういう回答でどうなん? http://mevius.5ch.net/test/read.cgi/db/1478776715/103
104: NAME IS NULL [sage] 2022/09/29(木) 00:10:01.50 ID:??? フライとかが登録されたTestというテーブル作っておいて whereの中に "エビフライ" ライク コンキャット( パーセントフライパーセント) みたいな値をかく。このエビフライっていうところが検索文字列ね これでフライがとれるだろ?こういうことじゃないの? http://mevius.5ch.net/test/read.cgi/db/1478776715/104
105: NAME IS NULL [sage] 2022/09/29(木) 00:10:43.48 ID:??? なおSQLで書こうとするとはじかれて書き込めなかった わかりにくいがすまん http://mevius.5ch.net/test/read.cgi/db/1478776715/105
106: NAME IS NULL [sage] 2022/09/29(木) 00:11:50.93 ID:??? 考え方の質問なので、SQLで回答するのは難しい http://mevius.5ch.net/test/read.cgi/db/1478776715/106
107: NAME IS NULL [sage] 2022/09/29(木) 00:13:04.39 ID:??? 後半のパーセントで囲まれてるフライっていう文字列はテーブルのカラム名がそこにくる http://mevius.5ch.net/test/read.cgi/db/1478776715/107
108: NAME IS NULL [sage] 2022/09/29(木) 00:23:26.59 ID:??? それに沿った書き方すれば、'エビフライ'という文字列が与えられていて 項目中に'エビフライ'の部分文字列にマッチするレコードを見つけるという問題 'エビフライ'のどこで区切るかは指定されていない 字句解析を行うか、ブルートフォースで行うか、だろうか ストアドでやるとすれば、各レコードの項目文字列が'エビフライ'という文字列に 部分マッチングするか検査する感じかな http://mevius.5ch.net/test/read.cgi/db/1478776715/108
109: NAME IS NULL [sage] 2022/09/29(木) 00:57:46.88 ID:??? 104の方法がブルートフォースだよね http://mevius.5ch.net/test/read.cgi/db/1478776715/109
110: NAME IS NULL [] 2023/01/30(月) 21:25:17.60 ID:OB/pjXRI ソースレビューにてDISTINCTは性能劣化するのでGROUP BYに変更しろと言われましたがDISTINCTよりGROUP BYのほうが性能あがるんですか?初心者ですみません。 http://mevius.5ch.net/test/read.cgi/db/1478776715/110
111: NAME IS NULL [sage] 2023/01/30(月) 22:21:44.20 ID:??? >>110 DISTINCTのほうが速いこともあればGROUP BYのほうが速いこともある 状況によるので実際のデータとクエリで実行計画の差と所要時間を計測して http://mevius.5ch.net/test/read.cgi/db/1478776715/111
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 39 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.077s