今回は。LIKE で検索するときのメモ
select * from my_items where keyword like ‘%甘い%’;
このように %で囲むと一致するキーワードで検索します
select * from my_items where keyword like ‘%甘い’;
だと、最初に
甘いとなっている部分しか検索できないので注意
あと、AND検索で
select * from my_items where price>=50 AND price<150;
ならOK
で
select * from my_items where price=>50 AND price<150;
だとNG
ちょっとした違いだけど、はまりました
あと
ちょっと複雑なのとして
SELECT * FROM `my_items` WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%甘い%';
これは
IDが1または3
150円未満で
甘いが含まれる商品
と言う意味です
ちょっと複雑に見えますが Linux でシェルスクリプトとか
コマンドのパイプを使っていろいろとやっている人には
見慣れた光景かも....
注意事項として OR と AND を混ぜるときには
()で囲わないと、全然違う意味になるようです
SELECT * FROM `my_items` WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%甘い%';
とすると
id=1
OR
id=3 AND price<150 AND keyword LIKE '%甘い%'
という意味になります
もし、これの意味を id=1 もしくは id=3 としたいのなら
SELECT * FROM `my_items` WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%甘い%';
というように
()で囲むようにします