- ベストアンサー
Mysql問合せ構文
以下のようなテーブルがあります。 フィールド[DATE]~[EDATE]の中に外より指定する変数、たとえば "2006-10-23"が期間内に含まれるレコードを抽出する 構文をお願いします。 テーブルA ID |DATE |EDATE ---------------------------------------- 1 |2006-10-20 |2006-10-30 2 |2006-10-19 |2006-10-22 3 |2006-10-21 |2006-10-28 希望結果 ID |DATE |EDATE --------------------------------------- 1 |2006-10-20 |2006-10-30 3 |2006-10-21 |2006-10-28
- GETSTREET
- お礼率55% (43/78)
- MySQL
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
普通にBETWEENでよいでしょう。 (きちんとDATE<=EDATEになっていれば) SELECT `ID`,`DATE`,`EDATE` FROM `テーブルA` WHERE '2006-10-23' BETWEEN `DATE` AND `EDATE`
関連するQ&A
- MySQLの構文についてです・・・
いつもお世話になります。 MySQLの構文について悩んでおりますので、アドバイス頂けたらと思います。 環境 MySQL4.0 チームテーブルには各球団の情報があります。 team_table team_id | チーム名 1 | ジャイアンツ 2 | ドラゴンズ 3 | タイガース 4 | ベイスターズ 5 | スワローズ 6 | カープ ----------------------- スケジュールテーブルには対戦カードと審判割当があります。 レコードにはteam_idが入力されています。 schedule_table id | 対戦チーム1 | 対戦チーム2 | 審判チーム1 | 審判チーム2 | 1 | 1 | 2 | 3 | 4 | 2 | 3 | 4 | 5 | 6 | 3 | 5 | 6 | 1 | 2 | --------------------------------------------------------------- この2つのテーブルから id | 対戦チーム1 | 対戦チーム2 | 審判チーム1 | 審判チーム2 | 1 |ジャイアンツ |ドランゴンズ | タイガース | ベイスターズ| 2 | タイガース | ベイスターズ| スワローズ | カープ | 3 | スワローズ | カープ |ジャイアンツ |ドランゴンズ | と表示したいのですが、 INNER JOIN で結合するにも4回行わなければならないのと、フィールド名がかぶってしまうので、もっとスマートな方法がないかと考えております。 大変未熟なためアドバイスを頂けたらと思いますので、よろしくお願い致します。2人くらいの方からアドバイス頂けましたら、迅速に締め切り、ポイント付与させて頂きます。
- ベストアンサー
- MySQL
- 副問合せをいれたINSERT文で、問合せ結果が無い場合
副問合せをいれたINSERT文で、問合せ結果が無い場合 環境はSQL Server2005です。 テーブルA,テーブルBが存在し、テーブルAにレコード追加する際に一部をテーブルBから抽出して、 INSERTしようとしています。 [SQL文] INSERT INTO テーブルA(フィールド1, フィールド2, フィールド3,フィールド4・・・) SELECT 'AAA', 'BBB' ,B.フィールド3, B.フィールド4 ・・・ FROM テーブルB B WHERE ~ この場合、テーブルBにWHEREで指定した条件のレコードが存在しない場合はINSERTされなくなってしまいます。 存在しない場合は、該当のフィールドにはNULLをいれたいのですが、テーブルBからの結果が存在しない場合でも テーブルAにINSERTする方法はありますか?
- ベストアンサー
- SQL Server
- MYSQLのDELETE構文について
MYSQLのDELETE構文について phpmyadmin上でDELETE構文を使ってデータを一括削除したいと思っています。 このようなテーブルレコードがあります。 テーブル名 : officeinfo ID name address post_date 1 A会社 東京 1130128000 2 B会社 大阪 1130129111 3 C会社 東京 1130132000 4 D会社 東京 1130132568 条件 ・addressが東京 ・post_dateが1130132000より前(1130132000も含む) この条件に当てはまるデータを全て削除したいのですが、この場合どのようなSQLを書けばいいのでしょうか? ためしに下記をやってみましたがエラーになってしまいました。 DELETE * FROM `officeinfo` WHERE `post_date`<=1130132000 and `address`=東京; #1064 - You have an error in your SQL syntax 次に下記を試しましたが同じエラーになってしまいました。 DELETE FROM officeinfo WHERE `address`=東京 ORDER BY `ID` LIMIT 2; どのように直したらいいのでしょうか?
- ベストアンサー
- MySQL
- ACCESS2003 数値や文字列のあいまい検索
フィールド内に入力されている文字列から、「ひらがな」や「英語」が入力されているレコードの抽出について質問です。 ※[ニックネーム]のフィールドは、英数カナ文字が混在しています。 ======================== (テーブル) [ID] [ランク] [ニックネーム] 1 A 123456789 2 B akb48 3 A ああああ 4 B 987654321 5 C かかか123 6 B 112233 7 C 445566 8 A 778899xyz ======================== ☆上記のテーブルから、[ニックネーム]に「ひらがな」が 含まれるレコードの抽出をする。 ======================= [抽出結果] [ID] [ランク] [ニックネーム] 3 A ああああ 5 C かかか123 ======================== ☆上記のテーブルから、[ニックネーム]に「英語」が 含まれるレコードの抽出をする。 ======================= [抽出結果] [ID] [ランク] [ニックネーム] 2 B akb48 8 A 778899xyz ======================== 上記のように、クエリでの条件を指定して抽出結果を表示させたいのですが、 どうすればよろしいでしょうか? また、クエリだけでは出来ない場合は、SQLで教えていただければ 幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- テーブルの内容とテーブルのカラムの件数
以下のようなテーブルがあります。 そのテーブルの内容と、そのテーブルのあるカラムの件数を条件にして抽出したいのですが、どのように指定すればよろしいでしょうか? テーブルA id(int) AUTO_INCREMENT, user_id(varchar), price(int), date(datetime) 表示したい一覧 user_id | date | price A | 2014-03-10 10:00:00 | 2600 B | 2014-03-11 11:00:00 | 2720 A | 2014-03-13 12:00:00 | 2500 C | 2014-03-14 15:00:00 | 2860 B | 2014-03-18 13:00:00 | 2450 A | 2014-03-19 19:00:00 | 2550 ・・・ などのレコードがあった場合、 user_idが同じ場合のレコード数が2~5の場合等を抽出したいと思います。 うまく表現できませんが、このような場合の抽出の仕方をわかる方、よろしくお願いします。
- ベストアンサー
- MySQL
- [MYSQL] GROUP BY による結果レコードの取得について
こんにちは。 今回は MYSQL の GROUP BY によって、複数レコードのグループ化を行った場合についてお尋ねしたいです。 id, val という二つのフィールドをもつテーブルがあったとして、複数レコードに対して、id でグループ化を行うとします。 その時、val の合計を求めたいのですが、 SELECT id,SUM(val) FROM tablename GROUP BY id となる SQL構文により SUM(val) を取得します。 この場合、SUM(val) を降順にソートした結果レコードを得ることはできますでしょうか? 通常は ORDER BY を用いてこれを行うと思うのですが、このケースではよくわかりません。 また、PEAR によって、これらの結果レコードを連想配列で取得しようと思っています。 結果レコード $rs に対して、 $data = $rs->fetchRow(DB_FETCHMODE_ASSOC); とすると、 $data の連想配列のキーが SUM(val) となってしまいます。 変数に括弧が含まれるのは具合がよくないので、これらを回避する方法はありませんでしょうか? 以上2点おわかりの方がいればお答えいただけないでしょうか。
- ベストアンサー
- PHP
- mysqlテーブルから一つレコードを取得して変数に
mysqlテーブルから一つレコードを取得して変数に はじめまして。仕事上必要で独学で勉強を始めましたが、行き詰ってしまったので教えてください。 mysql+phpにて以下のテーブル(tbl_ex)で、phpから、'test'のレコードを足がかりに、idの'001'を返して変数に代入する方法がわかりません。 tbl_ex +-------+-----------+ | id | account | +-------+-----------+ | 001 | test | +-------+-----------+ | 002 | sample | +-------+-----------+ accountのtestからidを抜き出すのに SELECT id FROM tbl_ex WHERE account = 'test'; という具合にやったのですが、それからどうidを変数にするのかわからず、 元から違っていて別の方法があるのかと疑問です。 結果、$id='001' というようにしたいです。 凡庸な質問なのかもしれませんが、ご教授お願い致します。
- ベストアンサー
- PHP
- MySQLで別テーブルを参照し、レコードを消したい
お世話になります。MySQL4のデータベース上に2つのテーブルがあるのですが、 片方のテーブル(a)にあるフィールド(b_id)の値を参照し、もう片方のテーブル(b)のレコードを消していきたいのです。 具体的には以下のようなテーブル(a)とテーブル(b)があります。 TBL: a =========================== id b_id category =========================== 0 1 3 --------------------------- 1 2 1 --------------------------- 2 3 2 --------------------------- 3 4 2 --------------------------- TBL: b =========================== id name price =========================== 0 goodsA 1,000 --------------------------- 1 goodsB 500 --------------------------- 2 goodsC 250 --------------------------- 3 goodsD 2,500 --------------------------- 4 goodsE 1,800 --------------------------- やりたいことは、テーブル(a)の「category」フィールドが「2」以外であれば、 そのレコードの「b_id」にある数値を「id」にもつ、テーブル(b)のレコードを消していきたいのです。 上記の例だと、テーブル(a)のid「0」と「1」がcategoryに「2」以外を持っています。 この2つのレコードのb_idは「1」と「2」ですので、テーブル(b)のid「1」と「2」を消したいと思っています。 SQLについて知識がなく、困っています。どなたかご存知の方がいらっしゃいましたら、お知恵をお貸しください。 よろしくお願いします。
- 締切済み
- MySQL
- 条件付きでデータの置換と新規挿入
教えてください。 id(主)|u_id|date|field1|field2| と言うフィールドを持つテーブル[tbl_1]があります。 ポストするデータのu_idとdateがテーブルのレコードと一致する場合、 field1及びfield2のデータを置換 若しくは、挿入し、 u_idとdateが一致しない場合、新しいレコードを挿入したいと 思うのですが、これをひとつの命令文として行うことはできるでしょうか。 以下、試してみたことです。 replace into tbl_1(field1,field2) value(1111,2222) where u_id='1' and date='20110420' 上記では、シンタックスエラーが返ってきました。 次に、 replace into tbl_1(u_id,date,field1,field2) value(1,20110420,1111,2222) としたところ、u_idとdateが一致するレコードがあっても、 新規レコードとして挿入されました。 1回の命令文で処理を行いたいと思うのですが、 やはり、処理は分けた方が良いのでしょうか。 ご回答よろしくお願いいたします。
- ベストアンサー
- MySQL
お礼
ちょっと難しく考えていたようです。すっきりしました。どうもありがとうございました。