アプリ版:「スタンプのみでお礼する」機能のリリースについて

MySQL 4.0.20 + PHP で名前が入ったテーブルよりLIKEを使って検索すると全然関係のない名前まで引っ張ってきます。
SELECT * FROM `lady` WHERE name LIKE 'らむ'
上記で検索すると 「とも」って名前まで引っ張ってきます。
SELECT * FROM `lady` WHERE name LIKE 'らな'
だと 「るる」って名前も引っ張ります。
どうも「ら行」の検索がうまく出来ないようです。

何か回避方法はあるのでしょうか?
よろしく御願いします

A 回答 (3件)

#1、#2回答者です。



文字コードが「latin1」になっており、これでは日本語が正しく扱われません。

OSがWindows系なら「sjis」、UNIX/LINUX系なら「ujis」にする必要があります。

「MySQL 4.0 日本語」等で検索すれば、設定方法などの記載がたくさんヒットします。
一例を、参考URLに書いておきます。

参考URL:http://www.geocities.jp/nonoyamajp/C32nd/MySQL/M …
    • good
    • 0
この回答へのお礼

ありがとう御座います。

やっぱり文字コードの関係だったのですね^^;
参考URLを見て試してみます。

本当にありがとう御座いました。

お礼日時:2006/07/26 10:12

#1回答者です。



文字コードの指定は、どうなっているのでしょうか?

statusコマンドでの表示結果を、追記できますか?
    • good
    • 0
この回答へのお礼

お返事ありがとう御座います。

mysql Ver 12.22 Distrib 4.0.20, for pc-linux (i686)

Connection id: 77308318
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Server version: 4.0.20-log
Protocol version: 10
Connection: Localhost via UNIX socket
Client characterset: latin1
Server characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 47 days 9 hours 8 min 7 sec

Threads: 1 Questions: 991042097 Slow queries: 0 Opens: 2505 Flush tables: 1 Open tables: 36 Queries per second avg: 242.090

これで宜しかったでしょうか?。

お礼日時:2006/07/25 17:42

補足説明をお願いします。



1.name列の定義は、どういうデータ型ですか?
 char(4)? varchar(4)? それ以外?

2.インデクスの有無は?

3.等価なその他の検索条件では発生しませんよね?
(1)where name='らむ'では発生しませんよね?

(2)where substr(name,1,4)='らむ'でも発生しませんよね?

>何か回避方法はあるのでしょうか?

完全一致の検索なら、likeを使う意味はないのでは?
=条件にできないのでしょうか?
    • good
    • 0
この回答へのお礼

早速の回答ありがとう御座います。

すいません言葉足らずで、補足としまして

1.varchar(64)
2.インデックスはありません
3.(1)等価でも発生します
SELECT * FROM `lady` WHERE name = 'らむ'
でも「とも」がヒットします。
(2)は試していません。

>完全一致の検索なら、likeを使う意味はないのでは?
=条件にできないのでしょうか?

完全一致の検索ではありません。

よろしく御願いします。

お礼日時:2006/07/25 16:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!