- ベストアンサー
select文の条件指定
yambejpの回答
なんか色々問題ある書き方ですが・・・ まず少しでもバグを減らしたいなら、以下注意を。 (1)*はつかわない (2)予約語をフィールドに使わない。たとえばdateとか (3)フィールド名はバックスラッシュ``で、値はシングルクォーテーション ''をつかってくくる (4)PHPの変数で値をわたすときはプリペアドステートメントで (5)クエリーのけつに;をつけない (6)デバグのためにdieでmysql_error()をひろう とにかく一度print $queryしてSQLが意図したとおり吐かれているか みてみてください
関連するQ&A
- select文で見つからない場合の結果
MEMBERLISTにUSERIDというフィールドがあるが、USERIDの値が00101であるレコードが存在しない場合、下記のようなコードでは$resにはTRUEが返されますか?それともFALSEですか? 指定した条件が見つからなかった場合、mysql_query関数がどっちを返すのか教えてください。 $sql = 'select USERID from MEMBERLIST where USERID = "00101"'; $res = mysql_query($sql, $conn);
- 締切済み
- MySQL
- 別テーブルからselectした値を他のテーブルにinsertしたいのですが、上手くできません
以下のように行ったのですが、 全ての値が別テーブルにinsertされません。 $sql = "SELECT tbl_A.id, tbl_A.data FROM tbl_A "; $rst = mysql_query( $sql ); while ( $col = mysql_fetch_array( $rst ) ) { $sql = "INSERT INTO tbl_B ( date, id, data ) VALUES ( '" . date( 'Y-m-d' ) . "', '" . mysql_real_escape_string( $col['id'] ) . "', '" . mysql_real_escape_string( $col['data'] ) . "' )"; } このやり方では、テーブル内の1つの値しかinsertされません。 selectされた全ての値をinsertするにはどのようにしたら良いのでしょうか? よろしくお願いします。 DB:mysql5 SP:php5
- ベストアンサー
- MySQL
- select文について
現在、"user"というテーブルに"id"と"date(datetime)"という項目があり、その"date"にあるデータの中から月を指定して抽出したくて以下ようなSQL文を書いたのですがうまくいきません。 SELECT `id` FROM `user` WHERE convert((SELECT extract(month from `date`) FROM `user`), INTEGER) = 9 mysql5.0です。 よろしくお願いします。
- ベストアンサー
- MySQL
- php5+mysqlのSELECT文でwhere句を指定すると正しく動
php5+mysqlのSELECT文でwhere句を指定すると正しく動きません。 レコード数を取得します。 ここで、field10(category)=text型の値に基づきレコード数を取得したいのですが、 $sql="select * from A where B='C'"; とするとレコード出力(index.php)で0を出力。 where句を指定せずに $sql="select * from A"; とするとレコード出力(index.php)で97を出力。 文字コード関係のQ&Aサイトを見ましたが、phpファイルの冒頭部分に $con = mysql_connect($DBSERVER, $DBUSER, $DBPASS); mysql_query("SET NAMES 'sjis'"); $selectdb = mysql_select_db($DBNAME, $con); を指定しています。 テーブルAに含まれるデータは、csv(,区切り)で、load data infile・・・しました。 ※Records:97 Deleted:0 Skipped:0 Warnings:0 他に考えられる原因・対処方法はありますでしょうか? よろしくお願いします。
- 締切済み
- PHP
- ある条件のSELECT文の作成について
以下のSQLの作成で悩んでいます。 【内容】 抽出元テーブルの中で、あるコードが同じデータは、 ある項目を全て同じ値にして取得したい。 (例) ■抽出元テーブル コード SEQ FLG 1 1 1 1 2 1 3 2 1 0 2 2 2 3 3 1 1 コードは同じ物が1つ又は複数あります。 コードが同じ物にはSEQで番号が連番されます。 FLGの項目がありますが、SEQ=1のデータしか設定されていません。 ■求めたい結果 コード SEQ FLG 1 1 1 1 2 1 1 3 1 2 1 0 2 2 0 2 3 0 3 1 1 全てのデータでFLGを求めて取得します。 取得の仕方はコードが同じでSEQ=1の値を取ります。 抽出元テーブルと結果のデータ件数は同じになります。 抽出元テーブルと結果の違いは、FLGに値が埋まっているかどうかの違いのみです。 このテーブルのFLGはUPDATEする事は出来ません。 別表なども利用しないで、 selectのSQL文だけで対応したいです。 どのような方法で対応できるでしょうか? オラクルのバージョンは10gです。 よろしくお願い致します。
- ベストアンサー
- Oracle
- SELECT文での抽出条件
以下のような処理を行いたいと思いますが SQL文の作成方法を御教授下さい。 【時間DB】 YEARMONDAY,HOUR,FLG, DATA ----------------------------- 20050528 1 1 10 20050528 2 1 20 20050528 3 1 30 20050528 4 1 40 . . . 20050528 22 1 40 20050528 23 1 50 20050528 24 1 60 【日DB】 YEARMONDAY,FLG, DATA ----------------------------- 20050528 1 250 処理内容:指定された日付で日DBの作成を行う。 抽出条件:フラグが全て等しい場合はその値を取得 :フラグが一致しない場合は0を取得 上記の場合,SQL文で抽出可能でしょうか? 以上,よろしくお願い致します。
- ベストアンサー
- Oracle
- PHP+MySQLで高速化
mysql_query()が返したresourceの行数は得られませんか? 例をあげると データが id p (フィールド) 42 651 23 357 67 123 28 385 このように4レコード有ったとして $res = mysql_query('select p from tbl where p="123"'); これで、$resから3行目というのを得て、3を使ってidの67を得たいのですが、 $res = mysql_query('select id,p from tbl where p="123"'); のようにして$resのidを見るようにする以外の方法は無理なんでしょうか? もし前者が可能ならそちらの方が速いと思うのですが。
- ベストアンサー
- PHP
- select文
こんばんは。PHPでデータベースからレコードとフィールドを表として取り出そうとしてますが、うまく行きません。 MySQLへの接続はうまくいってると思うので、while文が間違ってるのでしょうか?PHPのバージョンはPHP Version 4.4.2です。 よろしくお願いしますm(__)m <?php require_once("dbini.php"); $con = mysql_connect($server, $user, $pass); $select = mysql_select_db($dbname, $con); $sql = "select * from book"; $rst = mysql_query($sql, $con); $body = "<table border='0' cellpadding='5' cellspacing='5' width='500'><tr><td>\n"; while($col = mysql_fetch_array($rst)) { $body .= "<b><font size='+2'>".$col["title"]."</font></b>" $body .= "</td></tr>"; $body .= "<tr><td colspan='2'>".$col["article"]."</td></tr></table>"; } mysql_free_result($rst); $con = mysql_close($con); ?> <html> <body> <?= $body ?> </body> </html>
- ベストアンサー
- PHP
- 複合検索のselect文
eclipseとmySQLで登録した情報を検索する機能を作っています。 図書館にあるようないくつかの条件を入力すると検索されるようなものを作りたいのですが、DAOのselect文をどう書けばいいかわかりません。 andでつなげるとnullが入ったときに機能しなくなりますし・・・ なにかヒントをいただけませんか?
- 締切済み
- Java
- SELECTでの指定行からの指定行数文の取得
こんにちは。 OracleでSELECT文、一発で指定行から指定行数分のデータを取得するように指定できるのでしょうか? 例) SELECT * from tbl01; で、100行取得できる状態で25行目から30行分取得する OracleのSQLリファレンスを調べたのですが該当するようなものは 見当たりませんでした。 よろしくお願いします。
- ベストアンサー
- その他(データベース)
お礼
ありがとうございます。 select文を以下のように変更したところ、うまくいきました。 SELECT * FROM registration_tbl WHERE reg_date > LAST_DAY('".$previousyear."') AND delete_flg = 0 ORDER BY reg_date ASC 助かりました。