0

最近引き継いだ半分完成したプロジェクトに関する php/mysql クエリの質問があります。

このプロジェクトは、ERP (C++) ソフトウェアによって接続されている mysql データベースを使用して、php でプログラムされたオンライン ショップです。ERP と中途半端なオンライン ショップは同じプログラマーによって行われましたが、私の顧客はショップの結果に非常に満足していません。プログラマーが私と一緒に作業することを拒否したので、そうでなければ非常に単純な問題で行き詰まりました。

両方ともフルテキスト インデックスを持つ 2 つのフィールドでフルテキスト検索を行う必要があります。単純な「SELECT ... MATCH ... AGAINST」になりますが、期待どおりに機能しません。たとえば「ツリー」を検索項目として使用すると、クエリは「ツリー」ではなく「ツリー」または「ツリー」などを含むすべてを検索します...私の最初の推測は、フィールドの照合を別のものに変更することでしたlatin1_general_cs よりも優れていますが、残念ながら ERP はそれをあまり好まないようです。

クエリ文字列内で必要なフィールドをオンザフライでより便利なものに変換する可能性があることをどこかで読みましたが、それを理解できませんでした。

多分誰かが同様の問題を抱えていましたか?

4

2 に答える 2

1

これを試して ::

Select * from myTable where LOWER(column) like '%tree%'

存在する場合は、テーブルからすべてのツリー、ツリー、ツリーを取得します

于 2012-09-22T18:57:07.077 に答える
0

LOWER()関数のMATCH句の列を固定できると思います。小文字の文字列のみをAGAINST句に渡す(またはそれらを独自のLOWER()でラップする)ようにすると、この問題は発生しません。

于 2012-09-22T18:57:27.693 に答える