※ ChatGPTを利用し、要約された質問です(原文:MySQLでのあいまい検索について、教えてください。)
MySQLでのあいまい検索の問題 - なぜ結果が意図しない形で表示されるのか?
このQ&Aのポイント
MySQLでのあいまい検索において、指定したキーワードが含まれるレコードを抽出する方法について質問があります。具体的には、「name」フィールドに「A」を含むレコードを抽出しようとしましたが、思った結果が得られませんでした。同様の問題が他のキーワードでも起きました。なぜこのような結果になるのか、正しい検索方法を教えてください。
質問者はMySQLであいまい検索を行いたいと考えています。具体的には、「name」フィールドに「A」を含むレコードを抽出したいとのことです。しかし、実際に検索を行ってみると、意図しない結果が表示されてしまいます。質問者はなぜこのような結果になるのか疑問を持っています。正しいあいまい検索の方法を教えてください。
MySQLであいまい検索を行った際、意図しない結果が表示されます。「name」フィールドに「A」を含むレコードを抽出しようとしましたが、他のキーワードも一緒に表示されてしまいます。質問者はなぜこのような結果になるのか疑問を持っており、正しいあいまい検索の方法を知りたいと考えています。
MySQLでのあいまい検索について、教えてください。
MySQLでのあいまい検索について、教えてください。
長いですが、最後までお付き合いください。
今、入っている全データは、以下の通りです。
fieldはnum,nameです。
1 あいうえお
1 かきくけこA
1 さしすせそB
1 たちつてとC
1 まみむめもF
2 あいうえお
2 かきくけこA
2 さしすせそB
3 わおん
3 らりるれろA
3 たちつてとC
3 なにぬねのD
4 かきくけこA
4 はひふへほE
4 まみむめもF
5 Aあいうえお
6 あいAうえお
7 あい A うえお
ここから、あいまい検索でnameに「A」を含むものを抽出したいので、
select num, name from ○○ where name like '%A%' order by num;
としました。すると出てくるのは、
1 かきくけこA
1 たちつてとC
1 まみむめもF
2 かきくけこA
3 らりるれろA
3 たちつてとC
4 まみむめもF
4 かきくけこA
5 Aあいうえお
6 あいAうえお
7 あい A うえお
が出てきてしまいます。「A」が含まれる物は全て出ますが、それ以外の物まで出ます。
また、「C」で同じことをすると、
1 たちつてとC
3 らりるれろA
3 たちつてとC
「E」では、
3 らりるれろA
3 なにぬねのD
4 はひふへほE
「D」でも別の物が出てきます。しかし「B」「F」は正常に出ます。
他にも、ひらがな「に」でやってみても、
3 らりるれろA
3 なにぬねのD
と出ます。
なぜ、このようになってしまうのでしょうか?
あいまい検索の仕方を間違っているのでしょうか?
よろしくお願い致します。
お礼
ありがとうございました!端末はsjisで、MySQLは違っていました。 本当に助かりました。