[rank:a]の検索結果


PHPのプログラムからMySQLに接続し、SELECTでデータを取得する処理のサンプルプログラムです。

あらかじめphpMyAdminを使用してMySQLにテータベース「testdb」を作成し、以下のSQLを実行しテーブル「users」を作成、3件のレコードを登録しておきます。

CREATE TABLE `users` (
  `userid` varchar(100) COLLATE utf8_bin NOT NULL,
  `password` varchar(250) COLLATE utf8_bin NOT NULL,
  `status` int(11) NOT NULL,
  `auth` int(11) NOT NULL,
  `username` varchar(250) COLLATE utf8_bin NOT NULL,
  `address` varchar(250) COLLATE utf8_bin NOT NULL,
  `mailaddr` varchar(100) COLLATE utf8_bin NOT NULL,
  `hpurl` varchar(250) COLLATE utf8_bin NOT NULL,
  `widgets` text COLLATE utf8_bin NOT NULL,
  `createdate` datetime NOT NULL,
  `lastupdate` datetime NOT NULL,
  PRIMARY KEY (`userid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

insert into `users` (`userid`,`password`,`status`,`auth`,
 `username`,`address`,`mailaddr`,`hpurl`,`widgets`,
 `createdate`,`lastupdate`)
  values('admin','1234','1','0','webmaster','',
  webmaster100@59log.com','http://59log.com/','',now(),now());
insert into `users` (`userid`,`password`,`status`,`auth`,
 `username`,`address`,`mailaddr`,`hpurl`,`widgets`,
 `createdate`,`lastupdate`)
  values('test1','5678','1','1','user 1','',
  'test1@59log.com','http://59log.com/','',now(),now());
insert into `users` (`userid`,`password`,`status`,`auth`,
 `username`,`address`,`mailaddr`,`hpurl`,`widgets`,
 `createdate`,`lastupdate`)
  values('test2','abcd','1','1','user 2','',
  'test2@59log.com','http://59log.com/','',now(),now());

以下のPHPプログラム(文字コードはUTF-8)では、テーブル「users」からレコードを全て取得しHTMLページとして出力しています。

--- mysql_connect.php ---

<html>
<head>
<title>PHPでMySQLに接続するサンプルプログラム</title>
</head>
<body>
<?php
$domain = "localhost";
$user = "test";
$password = "abcd12";
$dbname = "testdb";

// MySQLに接続
$dbconnect = mysql_connect($domain, $user, $password)
             or die(mysql_error());
mysql_select_db($dbname, $dbconnect)
             or die(mysql_error());

$sql = "SELECT * FROM users";

// クエリの実行
$result = mysql_query($sql, $dbconnect);
if (!$result) {
    $message  = 'Invalid query: ' . mysql_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die($message);
}

// 結果セットの行数を取得
$rows = mysql_num_rows($result);
echo $rows . '件のレコード<br />';
echo '<br />';

// 結果セットを表示
while ($row = mysql_fetch_assoc($result)) {
    echo $row['userid'] . '<br />';
    echo $row['username'] . '<br />';
    echo $row['mailaddr'] . '<br />';
    echo $row['hpurl'] . '<br />';
    echo '<br />';
}

mysql_free_result($result);
mysql_close($dbconnect);
?>
</body>
</html>
[2001] Posted by kagahiro at 2010/08/19 20:04:16
0 point | Link (6) | Trackback (0) | Comment (0)

SQLのSELECT文を使用して先頭からn件のレコードを取得するだけでなく、n件目からm件目までのレコードを取得することも可能です。

Oracle8i R8.1.5 以降
Oracle8i R8.1.5 以降では、Table1のField1の昇順に11件目から15件目までの結果セットを取得する場合は以下のSQL文で取得できます。

SELECT *
FROM (SELECT *, ROWNUM SEQNUM
FROM (SELECT * FROM Table1 ORDER BY Field1) A) B
WHERE SEQNUM > 10 AND SEQNUM <= 15;

Microsoft SQL Server 7.0 以降
Microsoft SQL Server 7.0 以降ではTOPを使用して、以下のSQL文で Table1の11件目から15件目までの結果セットを取得できます。

SELECT TOP 5 * FROM Table1 A
WHERE NOT EXISTS
(SELECT * FROM (SELECT TOP 10 * FROM Table1) AS B
WHERE A.Field1 = B.Field1)
ORDER BY A.Field1

その他のRDB
また、上記以外のRDBでも以下のSQL文で同様の結果が得られます。

SELECT DISTINCT COUNT(*), A.Field1, A.Field2, A.Field3
FROM Table1 A, Table1 B
WHERE (A.Field1 >= B.Field1)
GROUP BY A.Field1, A.Field2, A.Field3
HAVING COUNT(*) > 10 AND COUNT(*) <= 15

SQLパズル 第2版 プログラミングが変わる書き方/考え方
翔泳社 著者:ジョー・セルコ,Joe Celko 価格:2,940円 評価:★★★★★


  • SQLの名著 ★★★★★
  • 待望の新版です ★★★★★

powered by amalink
(追記あり)
[149] Posted by kagahiro at 2005/03/21 16:41:09
1 point | Link (11) | Trackback (1) | Comment (0)

単にテキストファイル等の文字エンコードを変換するのであれば、iconvコマンドを使用して変換すれば良いのですが、 プログラム内部で取得した文字列の文字エンコードを変換したい場合もあります。

以下のプログラムはLinuxやCygwinの環境でC言語のプログラムからiconvを呼び出して文字エンコードを 変換する場合の手順を示したサンプルプログラムです。

--- tst_iconv.c ---

#include <stdio.h>
#include <iconv.h>

#define  BUFSIZE  1024

char outbuf[BUFSIZE];

int convert(char const *src,
            char const *dest,
            char const *text,
            char *buf,
            size_t bufsize);

main(void)
{
    int ret;

    ret = convert("SHIFT-JIS", "UTF-8",
                  "日本語テストメッセージおはよう",
                  outbuf, sizeof(outbuf));
    if (ret) {
        printf("%s\n", outbuf);
    }
    else {
        printf("Oops!\n");
    }
}

int convert(char const *src,
            char const *dest,
            char const *text,
            char *buf,
            size_t bufsize)
{
    iconv_t cd;
    size_t srclen, destlen;
    size_t ret;

    cd = iconv_open(dest, src);
    if (cd == (iconv_t)-1) {
        perror("iconv open");
        return 0;
    }

    srclen = strlen(text);
    destlen = bufsize - 1;
    memset(buf, '\0', bufsize);

    ret = iconv(cd, &text, &srclen, &buf, &destlen);
    if (ret == -1) {
        perror("iconv");
        return 0;
    }

    iconv_close(cd);
    return 1;
}

コンパイル方法
$ gcc -o tst_iconv tst_iconv.c -liconv

ICONV

[1982] Posted by kagahiro at 2010/07/26 09:54:29
0 point | Link (2) | Trackback (0) | Comment (0)

メイドコスプレで将棋実況動画を配信している押木ゆいさんのYouTubeチャンネル。オリジナル戦法「メイドシステム」を引っさげて将棋ウォーズ初段を目指す(現在1級)。押木ゆいさんの将棋ウィーズIDは「yui_smaid」。...
[2982] Posted by kagahiro at 2018/10/28 12:31:11
0 point | Link (5) | Trackback (0) | Comment (0)

SQLiteでは、AccessやMicrosoft SQL ServerのようにTOP句を使用して上位n件のデータを取得することはできません。SQLiteのSELECT文で上位n件のデータを取得する場合はLIMIT句を使用します。構文:SELECT カラム名, ....
[2542] Posted by kagahiro at 2016/04/30 16:43:14
1 point | Link (3) | Trackback (1) | Comment (0)

総資産200億円の有名個人投資家「cis(シス)」さんが、ネット掲示板への書き込みで検査データ改ざんが発覚し株価が急落した東レ株を大量に買ったもようだ。とある不祥事化学繊維系メーカー逆張りで買ってみたけっこ...
[2861] Posted by kagahiro at 2017/11/29 17:47:33
0 point | Link (3) | Trackback (0) | Comment (0)

人気の将棋アプリ「将棋ウォーズ」でスーパープレミアムプラン限定だが、プロ棋士との対局(指導対局)ができるようになった。スーパープレミアムプランの購入者は期間中1回だけ希望の手合でプロ棋士との対局ができる...
[2973] Posted by kagahiro at 2018/10/17 22:20:58
1 point | Link (4) | Trackback (0) | Comment (1)

嬉野流とは嬉野流(うれしのりゅう)は、アマ強豪の嬉野宏明氏が開発した将棋奇襲戦法で、初手6八銀(先手の場合)から斜めに銀を繰り出していき2筋の突破を目指す、7六歩を突かず角は引き角として使うなどの特徴が...
[2930] Posted by kagahiro at 2018/08/05 16:05:01
4 point | Link (6) | Trackback (0) | Comment (1)

米国の通貨であるドル(USD)と日本の通貨である円(JPY)の通貨ペアドル円(USD/JPY)のリアルタイムチャート。ドル円リアルタイムチャートnew TradingView.widget({ "width": 640, "height": 400, "symbol": "F...
[2915] Posted by kagahiro at 2018/06/21 15:53:07
6 point | Link (19) | Trackback (0) | Comment (6)

Google Finance(グーグルファイナンス)とはGoogle Finance(グーグルファイナンス)は、株価情報、金融ニュース(Google Newsと連動)、為替レートなどの投資関連情報が掲載されているサイトで、ダウ平均、S&P 500...
[2435] Posted by kagahiro at 2014/11/20 10:43:37
0 point | Link (12) | Trackback (0) | Comment (0)

|< 先頭へ  < 前へ  1 2 3 4 5  次へ >


アクセスランキング

今日のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (62 PV)
  2. 有力将棋系ユーチューバーのショウヤンさんが将棋ウォーズで「ソフト指し」を告白し衝撃走る (31 PV)
  3. 最新のGoogle News(グーグルニュース)日本版のRSSが取得できるURL (10 PV)
  4. 嬉野流開発者のたまごん(嬉野宏明)さんがソフト指し疑惑で将棋倶楽部24のアカウントを停止されてしまう #将棋 (8 PV)
  5. Google News (グーグルニュース)日本版 (8 PV)
  6. Google Finance(グーグルファイナンス)日本版が表示されるようになってますが・・・ (7 PV)
  7. [将棋]角換わり▲4五桂速攻(△6五桂速攻) #佐藤天彦名人 #三浦弘行九段 (4 PV)
  8. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (3 PV)
  9. [FX]ドル円(#USDJPY)リアルタイムチャート #市況実況 (3 PV)
  10. ドイツ銀行問題 7500兆円のCDS(デリバティブ)危機 #世界的金融危機 (3 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (1790 PV)
  2. 有力将棋系ユーチューバーのショウヤンさんが将棋ウォーズで「ソフト指し」を告白し衝撃走る (582 PV)
  3. Google News (グーグルニュース)日本版 (451 PV)
  4. 最新のGoogle News(グーグルニュース)日本版のRSSが取得できるURL (402 PV)
  5. [将棋]ユーチューバーのクロノさんが将棋ウォーズ運営からアカウント停止の警告を受ける #ソフト指し #複垢 #アカBAN (222 PV)
  6. [将棋]角換わり▲4五桂速攻(△6五桂速攻) #佐藤天彦名人 #三浦弘行九段 (212 PV)
  7. Google Finance(グーグルファイナンス)日本版が表示されるようになってますが・・・ (167 PV)
  8. 嬉野流開発者のたまごん(嬉野宏明)さんがソフト指し疑惑で将棋倶楽部24のアカウントを停止されてしまう #将棋 (164 PV)
  9. [Perl]UTF-8でエンコードされた文字列の文字数を取得するコード (135 PV)
  10. ウェブページを1回だけリロード(再表示)する方法 (126 PV)

アクセス統計

ディレクトリ

関連サイト