
こんにちは、SQL文の書き方について悩んでいます。
PHPとSQLITE3で複数キーワードの検索プログラムを作ろうとしています。
自分用の日記をSQLITE3のDBに記録しているもので、
main のカラムに本文を書いて、
kuwake で、hobby、work、other などカテゴリー分けをしています。
※一つの記事にたいして、選択可能なkuwakeは一つだけです。
趣味(hobby) と 仕事(work) のカテゴリー の中で、
複数文字検索をしたいのですが、 以下のSQL文で動作しませんでした。
正しいSQL文の書き方をご教授ください。よろしくお願いします。
"SELECT 'hobby' and 'work' ''FROM '$table' WHERE 'main' LIKE '%キーワード1%' and main LIKE '%キーワード2%'
■テーブルの詳細↓
CREATE TABLE table (id INTEGER PRIMARY KEY, main TEXT, kuwake TEXT, date TEXT);
No.2ベストアンサー
- 回答日時:
たとえばこんな感じです。
select *
from table
where kuwake in ('hobby', 'work')
and (main LIKE '%キーワード1%' or main LIKE '%キーワード2%');
No.1
- 回答日時:
私はSQLITE3を知りませんので完全について動作するSQLを
提示することはできません。
しかし、SQLの基本はどのDBでも変わらないと思いますので
いくつか指摘させていただきます。
ご確認の上、ご自分で正しいSQLに到達されますよう。。。
まず
selectの対象が間違っています。
欲しいのは本文でしたら、対象は格納先であるmainでしょうか
次にwhere句ですが、ここには通常検索条件を指定します。
ご自分で「趣味(hobby) と 仕事(work) のカテゴリー の中で」検索したい
と仰っているので、これもwhere句で指定してやるべきでしょう。
但し、単純にandで繋げては動かないSQLになります。
kuwakeには1つしか選択できない=1つしか格納されていない
のですから、「趣味(hobby)か仕事(work)」を条件とする必要があります。
どちらか(あるいはいずれか)が一致する条件を指定するには、
条件をorで繋げます。
A または B → A or b
※A,Bはそれぞれ1つの条件(date=now のような)です。
あとはorの影響する部分を括弧()でくくります。
※加算乗算の入り乱れた式で加算部分を括弧で囲むようなイメージです。
以上お役に立てば幸いです。
すぐに解答をしていただき、誠にありがとうございます。
SQL文を分かりやすく説明していただき本当に感謝です。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript html javascriptにてWeb SQLを操作したい。 2 2022/12/16 17:43
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP8でWarning:Undefined varia...
-
phpの問い合わせフォームを作っ...
-
composerをインストールしたい...
-
Content-Typeが機能していない?
-
PHPでユーザー情報を入力して簡...
-
メールフォームのタイトルが文...
-
PHPのエラーの解消法について教...
-
PHPからCSVをアップロード後、m...
-
php 入力画面から確認表示画面...
-
csvファイルについて教えて下さ...
-
文字列を段落で分ける方法を教...
-
PHPでMysqlにデータがあるかど...
-
フォームで戻った際に入力済み...
-
MySql PHP 2つのテーブルをJOI...
-
どうして送信されないのでしょ...
-
phpにおいて$xを計算式の文字列...
-
グローバルスコープはありますか?
-
クラス
-
【PHP/MySQL】コード上で生成...
-
if(preg_match("/[^0-9]/",$gu_...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgresのカレンダーについて
-
PHP+MySQLで月ごとの数量を表...
-
掲載日と更新日の管理の仕方
-
配列の重複を削除後、削除分の...
-
複数のカテゴリを選択した上でL...
-
SQLでMAXを使った
-
データ更新用のphpの記述でデー...
-
PHPでMySQL内のデータの合計値...
-
【Wordpress/PHP】更新した記事...
-
UNIX時間で今月1日~末日を取得...
-
構造体のプログラミング......
-
日付で0を抜く
-
By moving its office to Calif...
-
EXCELマクロのSQL文での引用符...
-
preg_replace, ereg_replace
-
今日が6月か、9月か、12月...
-
MySQL + PHP 同じテーブル内で...
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
単一グループのグループ関数で...
おすすめ情報