Contents
  1. MySQLバインディングを用いた動作確認例
    1. mysqlクライアント起動
    2. データベース作成
    3. テーブルの作成
    4. INSERTの確認
    5. 全文検索WHERE MATCHの確認
    6. UPDATEの確認

動作確認方法

MySQLバインディングを用いた動作確認例

mysqlクライアント起動

 # mysql -u root
 mysql>

起動したことを確認。

データベース作成

 mysql> create database senna_test;

データベース作成されたことを確認。

 mysql> show databases;
 +--------------+
 | Database     |
 +--------------+
 | mysql        |
 | senna_test   |
 | test         |
 +--------------+
 3 rows in set (0.00 sec)

テーブルの作成

以下のテーブルをsenna_testに作成

use senna_test;
CREATE TABLE table01 (
    id INT UNSIGNED AUTO_INCREMENT NOT NULL, PRIMARY KEY(id),
    title VARCHAR(255),
    body TEXT,
    FULLTEXT(body)
);

INSERTの確認

以下のようなファイル(insert_to_table)から、table01にレコード登録

use senna_test;
INSERT INTO table01 VALUES
(NULL, "衆院選挙について", "皆さんはどの党に投票するのでしょうか"),
(NULL, "果物", "apple リンゴ、orange オレンジ"),
(NULL, "歌", "わくわくさせてよ、ついてるねのってるね"),
(NULL, "MySQL", "MySQLリファレンスマニュアルを全部読め"),
(NULL, "ロボットのgood designとは", "先週末に開催された GoodDesignPresentation 2005");
 # mysql -u root < insert_to_table

全文検索WHERE MATCHの確認

以下のようなファイル(search)から、検索動作を確認。

use senna_test;
SELECT * FROM table01 WHERE MATCH(body) AGAINST('投票');
SELECT * FROM table01 WHERE MATCH(body) AGAINST('投票する');
SELECT * FROM table01 WHERE MATCH(body) AGAINST('apple');
SELECT * FROM table01 WHERE MATCH(body) AGAINST('リンゴ');
SELECT * FROM table01 WHERE MATCH(body) AGAINST('わくわく');
SELECT * FROM table01 WHERE MATCH(body) AGAINST('gooddesign');
SELECT * FROM table01 WHERE MATCH(body) AGAINST('読め');
# mysql -u root < search

英語、日本語とも検索できた。

UPDATEの確認

以下のようなファイル(upd_and_search)からレコードの更新と検索の動作を確認。

use senna_test;
UPDATE table01 SET body = 'wakuwakusaseteyo,ついてるねのってるね' WHERE id = 3;
SELECT * FROM table01 WHERE MATCH(body) AGAINST('wakuwaku');
UPDATE table01 SET body = 'わくわくさせてよ、ついてるねのってるね' WHERE id = 3;
SELECT * FROM table01 WHERE MATCH(body) AGAINST('わくわくさせてよ');
UPDATE table01 SET body = 'グッドデザイン'  WHERE id = 5;
SELECT * FROM table01 WHERE MATCH(body) AGAINST('グッドデザイン');
UPDATE table01 SET body = 'good design 2005'  WHERE id = 5;
SELECT * FROM table01 WHERE MATCH(body) AGAINST('design');
UPDATE table01 SET body = 'read mysql reference manual'  WHERE id = 4;
SELECT * FROM table01 WHERE MATCH(body) AGAINST('manual');
# mysql -u root < upd_and_search

更新、検索とも正しく動作した。

Last modified: 2007-01-28