MySQL

全4755件中1~20件表示
  • SQLの検索について

    SQLについて質問です。MySQLで作成した以下の投稿(post)テーブルとコメント(comment)テーブルがあります。サブクエリを使用し、投稿テーブルのタイトルごとにcomment_dateが2017年04月13日から2017年04月19日の範囲内でコメントが何件あるかを取得するSQLはどのように記述できますか?

    • 受付中
    • 困ってます
    • OBAKEI
    • MySQL
    • 回答数 1
  • 構文エラー

    おはようございます。教えて頂きたいのですが、SELECT * FROM tb WHERE mes LIKE '% 大盛り %'をmyadminのsql に打つと構文エラーというのがでます。どこが間違っているのでしょうか。

    • 受付中
    • 困ってます
    • KO3YANG
    • MySQL
    • 回答数 0
  • XAMPPのデータベースをダウングレードしたい

    借りてるレンタルサーバが、PHP8.0、MySQL5.6.23、phpMyAdmin4.0.10.18なものですから、XAMPPのものもこれに合わせたいです。 幸いPHPについては今最新のものも8.0だったのですが、MySQLは 10.4.20、phpMyAdminは 5.1.1でした。 https://www.server-engineer.net/entry/xampp_phpmyadmin_downgrade https://www.phpmyadmin.net/files/4.0.10.18/ 上記、サイトを見てとりあえずphpMyAdminのフォルダを入れ替えて「phpの設定変更」以外はやってみたのですが、 Fatal error: Array and string offset access syntax with curly braces is no longer supported in C:\xampp\phpMyAdmin\libraries\Util.class.php on line 2095 と出てphpMyAdminのログイン画面すら出ず。 該当のファイルの2095行目を見ると $char = $string{$i}; とあり、この変数の値が何かおかしいんだろうとは何となく分かりますが、そもそもこれから勉強しようとしてる自分としては読み解くことができません。 XAMPPは元々PHPのバージョンに合わせていろいろと作られてるという情報もあったので、さすがにダウングレードしようとしてるバージョンが古すぎるんでしょうか? MySQLについては倍近くのバージョンですよねぇ。 アップグレードはあっても、ダウングレードの方法は見つからないし。 XAMPPはダウングレードして使うのには向いてないんでしょうか? 使いやすくて結構好きなんですが・・・。 何か良い方法はあるでしょうか?

    • 締切済み
    • すぐに回答を!
    • mureimono
    • MySQL
    • 回答数 1
  • mysql

    $db = new PDO("mysql:host=localhost;dbname=db";""root","root"); まず、上記のコードを日本語訳していただきたいです。 そして、レンタルサーバーで運用する場合、上記コードのどこをどのように書き換えしなくてはならないでしょうか? よろしくお願いいたします

    • ベストアンサー
    • 困ってます
    • KO3YANG
    • MySQL
    • 回答数 1
  • SQLiteについて

    SQLiteのサンプルに、以下のような記述がありましたが extends(派生クラス) ということは元の基本クラスの記述があるということなのでしょうか? https://www.php.net/manual/ja/sqlite3.open.php /** * SQLite3 クラスを継承して __construct を変更し、 * open メソッドで DB を初期化します */ class MyDB extends SQLite3 {

    • ベストアンサー
    • 困ってます
    • dhtfyjh
    • MySQL
    • 回答数 2
  • sql文で現在の時間と比較し期間が来たら削除したい

    すみません、分かる方がいたら教えてほしいです。 現在PHPファイル内に記述されているsql文に修正を加えたいのですが、方法が分かりません。 実装したい内容は、表題の通りで、 現在は以下のコードで動いています。 $sql = "delete from hogehoge where limit_time<=now()"; おそらくデータベースhogehogeで、 今日の日付になれば、limit_timeに該当するテーブルは削除します。 という内容だと思っています。 これを、今日の日付がlimit_timeから2週間後になった時に削除する。 といったように、 削除する時期を変更したい場合は、どのように記述すればよろしいでしょうか? 拙い質問かもしれませんが、ご教授いただければと思います。

    • ベストアンサー
    • 困ってます
    • about29
    • MySQL
    • 回答数 3
  • 注文データのデータの整合性について

    1つ、教えてください。 例えば、「商品マスタ」というテーブルに下記のデータがあるとします。 商品コード:1001 商品名:DVD-R 金額:980 「注文」というテーブルに上記の商品(商品コード:1001)の注文データが存在している時、 「商品マスタ」から「商品コード:1001」の商品を削除されないようにする事をなっていうのでしょうか。 「データの整合性」??? 「参照整合性」でいいんでしたっけ??? くだらない質問をしてすみませんがご教授いただけませんでしょうか。 宜しくお願いします。

    • 締切済み
    • 困ってます
    • wakaba1972
    • MySQL
    • 回答数 1
  • phpmyadminの初期値

    すみません。 phpmyadminでデフォルト値を設定したくて下記の画像のようにカラム側をtext型にし、デフォルトをユーザー定義で値を挿入しました。 ブラザ側でpdo接続、fechをしたのですがimageのみ出力できませんでした。 設定、出力の方法を教えてほしいです。階層は、image/user/defualticon.pngです 一応、コード $row=$stmt->fetch(PDO::FETCH_NUM); var_dump($row); image以外は出力できました。

    • ベストアンサー
    • 困ってます
    • dhtfyjh
    • MySQL
    • 回答数 1
  • AUTO_INCREMENTの扱いについて

    MySQL 5.6を使用しています。 ユーザーテーブルがあるとします。 ユーザーテーブルにある「ユーザーID」はinsert時にAUTO_INCREMENTで自動採番されます。 ユーザーテーブルの別のカラムで「作成ユーザID」というカラムがあります。insertしたユーザーのユーザーIDを保持するカラムです。 すでにユーザーテーブルにいるユーザー(管理者)がinsertした場合はいいのですが、 自信で自分のユーザーを登録できる機能もあります。 その場合、まだ作成されてないユーザID(AUTO_INCREMENTで自動採番されるユーザーID)をどうやって参照したらいいでしょうか?

    • ベストアンサー
    • 困ってます
    • 2e3
    • MySQL
    • 回答数 1
  • dbの文字コード

    データベース(mysql)(pdo)にpasswaerd_hashでハッシュ化した文字列を格納しようとしたのですがおそらく文字コードが違うためにはじかれてしまいます。 マニュアルに 結果をデータベースに格納するときにはカラム幅を 60 文字以上にできるようなカラムを使うことをお勧めします (255 文字くらいが適切でしょう)。 と書かれているのですが、どれを使えばいいかわかりません。 どの文字コード(カラム側)を使えばいいですか? 接続はutf8mb4です。 ちなみにメールアドレス、英数字の20文字程度はutf8_general_ciです。 英数字に最適な文字コードを教えてください

    • ベストアンサー
    • 困ってます
    • dhtfyjh
    • MySQL
    • 回答数 1
  • データベース構造について

    一ページに一つコメント機能をつけたいのですが、調べていると、 1.データベースは中身のデータを全て読み込んでから、データを抽出するので、レコードが多くなればなるほど読み込みが遅くなるのではないのでしょうか? 2.例えば、mysqlでページが100万ページでその一つ一つにコメント機能(コメントの最大1000件ほど)をつける場合、テーブルは別々(ぺーじ毎に)に作った方がよいのでしょうか?それとも、テーブル一つに全て書き込ませた方がよいのでしょうか?

    • ベストアンサー
    • 困ってます
    • dhtfyjh
    • MySQL
    • 回答数 1
  • mysql

    mysqlでなぜこちらの https://www.php.net/manual/ja/book.mysql.php 最初の MySQL API は非推奨になったのですか?

    • ベストアンサー
    • 困ってます
    • dhtfyjh
    • MySQL
    • 回答数 1
  • Apache,PHP,MySQLの役割

    Apache, PHP, MySQLの役割をそれぞれ教えてください。どのようなイメージでWebページやアプリ,システムが作られているのかがよく分かりません。

    • ベストアンサー
    • 困ってます
    • OBAKEI
    • MySQL
    • 回答数 3
  • SQL文のエラー

    SQL文でエラーが表示されます。どの部分を修正すればいいですか? SQL文が長いので文字列を結合する演算子「.」を使って複数行に分けています。 エラー内容:SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= ? and product_id = product.id' at line 2 //商品番号だけでなく、商品名や価格も表示したいので商品情報を保持するproductテーブルと 結合する。 //全て取得するのでSELECTは* //favoriteテーブルにはcustomer_idとproduct_id //productテーブルにはid, name, price $sql = 'SELECT * FROM favorite, product' . 'WHERE customer_id = ? and product_id = product.id '; // ?に顧客番号を指定する。 // favoriteテーブルの商品番号(product_id列)と、productテーブルの商品番号(id列)が // 一致している行だけが必要なので、WHERE句に条件を追加する。

    • 締切済み
    • 困ってます
    • OBAKEI
    • MySQL
    • 回答数 2
  • 英文検索について。

    動画サイト内で、 「How to delete from question」 と検索すると、SQLの命令が出てしまい、 question という項目のページは消えてしまいますか? ' や ; などの記号は入れていません。 純粋な英文でも、SQL注入攻撃は成立してしまうのでしょうか?

    • ベストアンサー
    • 困ってます
    • noname#246835
    • MySQL
    • 回答数 1
  • sql文について

    sql文のswichをif分で変更したい。 下記のswitch文のlimitの範囲をユーザーが<a href="sqlpage1.php?sex=男&p=2">2ページ目</a>,<a href="sqlpage1.php?sex=男&p=3">3ページ目</a>,<a href="sqlpage1.php?sex=男&p=4">4ページ目</a>・・・・・・などを選択しクリックした場合にlimitの範囲を変更したいのですが(例 1ページ目・0~10、2ページ目・11~20、3ページ目・21~30、4ページ目・31~40・・・・・・) if文はどう書けばいいですか? ページはcssが一緒なので変えなくていいかなと思い一緒にしました。 以下、デフォルト(sqlpage1.php?sex=男&p=1)のものです。 switch($_REQUEST['sex']) { case 男; $sql = 'SELECT * FROM human where sex="男" order by limit (0,10)';ここを変更したい。 break; case 女; $sql = 'SELECT * FROM human where sex="女" order by limit 0,10'; break; case 中性; $sql = 'SELECT * FROM human where sex= "中性" order by limit 0,10'; break; }

    • ベストアンサー
    • 困ってます
    • dhtfyjh
    • MySQL
    • 回答数 2
  • sqglについて

    sqlのlimitとdescは一緒に使えますか? 例 select * from hp order by limit id 0,20 order by id desc; idを小さい順に1~20個表示したいです。

    • ベストアンサー
    • 困ってます
    • dhtfyjh
    • MySQL
    • 回答数 1
  • MYSQL vercharについて

    create table salemanagement.syohin( syohin_no int(20), syohin_name verchar(100), kubun verchar(100), cost int(20), price int(20), suryo int(20), purchase_no int(20), purchase_name verchar(100), PRIMARY KEY(syohin_no,purchase_no)); テーブルを作成しようとすると上記の文で、以下のエラーが出ます。 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'verchar(100), kubun verchar(100), cost int(20), price int(20), suryo int(20), pu' at line 3 vercharの部分をcharにするとテーブル作成ができます。 原因は何なんでしょうか?

  • win10homeのパソコンをdbサーバーにして

    win10homeのPCにmysqlをインストールしてDBサーバーとして、クライアントのwin10pro/homeのPCからaccessのODBC接続は可能でしょうか?

    • 締切済み
    • 困ってます
    • taiheihome
    • MySQL
    • 回答数 4
  • MySQL8.0で中央値を求める方法

    Windows10 64bit環境でMySQL8.0を使い中央値を求めるため模索している素人です。 5.6ではユーザー定義変数を使った下記の方法で求めていました。 SELECT avg(t1.`金額`) as `金額` FROM ( SELECT @rownum:=@rownum+1 as `row_number`, d.`金額` FROM uriage d, (SELECT @rownum:=0) r ORDER BY d.`金額` ) as t1, ( SELECT count(*) as total_rows FROM uriage d ) as t2 WHERE 1 AND t1.`row_number` in ( floor((total_rows+1)/2), floor((total_rows+2)/2)); しかし、これを8.0で実行すると結果は求められるのですが、次のような注意が出ます 「式内でのユーザー変数の設定は非推奨であり、将来のリリースで削除される予定です」 その上ODBCで通らなくなりました。そこで何か他にないかと検索したところ下記のサイトにPreparedStatementを使っている別の方法がありました、 *ttps://qiita.com/nkojima/items/2c483d4ddbdb29439c87 この場合。注意はでませんがODBC(デフォルト設定)では通らなかったのでさらに検索したところ *ttps://stackoverflow.com/questions/1291152/simple-way-to-calculate-median-with-mysql&usg=ALkJrhjuCCaICL0uLguGt2oD4qbVM9cG7g にウインドウ関数を使った単一ステートメントの下記の方法が紹介されていました、 SELECT AVG(t1.`金額`) AS median_val FROM (SELECT `金額`, ROW_NUMBER() OVER(ORDER BY `金額`) AS row_num FROM uriage) t1, (SELECT COUNT(*) AS num_records FROM uriage) t2 WHERE t1.row_num IN (FLOOR((t2.num_records + 1) / 2), FLOOR((t2.num_records + 2) / 2)) MySQLで100万件のレコードを対象に試したところ上記の変数を使った2件の方法より同等か少し遅い結果となりました。それでも標準SQLでの方法よりはるかに速いのですが・・・ また、以前使っていた32bit5.6に比べて上記2件の方法が遅いことがわかりました(平均3.0と1.9secが3.188と2.806secに)。・・・ とあるサイトで8.0ではCOUNT(*)が遅い原因の一つと考えられているとあったのででCOUNT(カラム名)に変更 (1)1.670 (2)1.640 (3)1.919 となりウインドウ関数を使った単一ステートメントの方法が一番遅い結果となりました。・・えっと!思いそこで前々回に質問しました(削除済み)・・平均値は前回のバッテリーモードから変更して測定し直しました。 さら検索していたら単一ステートメントの方法は見つかりませんでしたが、あるサイトにwith句をを使った方法が載っていました(試したところクエリが成立せず?)。1部を改変し下記クエリを試してみました。 SELECT COUNT(*)+1 INTO @rowindex FROM uriage; WITH i AS (SELECT `金額`,ROW_NUMBER() OVER (ORDER BY `金額`) AS rowindex FROM uriage) SELECT AVG(`金額`) AS median_duration FROM i WHERE i.rowindex IN (FLOOR(@rowindex / 2) , CEIL(@rowindex / 2)); この方法では、COUNT(カラム名)よりCOUNT(*)の方が速い結果となりました。 (4)COUNT(カラム名)・・1.906   (5)COUNT(*)・・1.547・・・・これでまた混乱を増加 他のDBからのODBC経由でSQLを実行するスクリプトを組んでいるので(3)の単一ステートメント方法以外にも、(2)や(5)の方法を参考に最初にCOUNTするクエリで値を取得し変数使い次に計算式でクエリを整形し直してから発行する2度手間のスクリプトを組んで中央値を取得していましたが、投稿の後調べてみるとODBCのシステムDSNの設定でconnectionのAllow multiple statementsにチェックで複数ステートメントの発行が可能でした。・・知らないことが多すぎる! もし他に別の方法があればと思い再々投稿しました。

    • 締切済み
    • 暇なときにでも
    • turu575
    • MySQL
    • 回答数 5