忍者ブログ

からすまる日誌

2020011702 %うどん

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2020011702 %うどん

%うどん
「うどん。で終わるデータを探せ」
 
%うどん%
「うどんが入っているデータを探せ。前に何がついていようがいまいが、後ろがどうだろうがともかくうどんが入ってればいい」
 
グーグルはじめ「キーワード検索」というのは後者を指す
フルスキャンをする必要があるのでデータに負荷がかかる
 

SELECT menu,price,cat FROM foods,cats WHERE cats.c_id = foods.c_id
AND menu LIKE "%うどん%"
 

うどん%
頭が確定していると一番検索は速いらしい
 
あたまに任意の文字があるとフルスキャンになる
 

けーたいそかいせきの問題?
自然言語(キーワード検索で入力された冗長な文章)を単語に分解する
 
係り受けで日本語を解析してジャストシステムさんはうまい変換を提供したらしい
 

SELECT menu,price,cat
 FROM foods,cats
 WHERE cats.c_id=foods.c_id
 AND menu LIKE "%そば"
 

foodsテーブルのmenuに「インデックス」をつけておくと検索がはやくなるらしい
 
まあどうでもいいけど
 
**02
 
構造→menuにチェック→左下のインデックスをえらぶ
ただし
あたまにワイルドカードがあるとインデックスが利用できない。らしい。
 

文字列のなかに%を記述するように。
つまりダブルコートのなかに%を記述しますよ。

どんぶりで600円未満の抽出
 
そのまえに
かつ丼を「かつどん」に修正するよ

 
 
 
修正したら条件を記述
 
SELECT menu,price
 FROM foods
 WHERE menu LIKE "%どんぶり"
 AND price < 600 
 
カラム名が先らしい
 
いま分かった。
・WHERE文はおそらく省略できない
・WHERE文を複数記述したいときにはじめてANDをつかう
・だからFROM句のつぎにANDがくることがありえないのだとおもう
 
SELECT menu,price
 FROM foods
 WHERE price < 600
 AND menu LIKE "%どんぶり"
  
やっぱりな。この記述でもいい↑ 
「2つの条件があるときはじめてANDでつなぐので、AND文は常に最終行に記述される」ようだ。
 
PR

コメント

ブログ内検索

カレンダー

03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30