動作確認方法
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
更新、検索とも正しく動作した。