LIKE が機能するはずだと思います。SQLが正しく書かれていないと思います。注文名が「ABCDEF」であると仮定すると、次のクエリ構造を使用してこれを見つけることができます。
SELECT id FROM purchase_orders WHERE name LIKE '%CD%';
説明すると、% 記号はワイルドカードであることを意味します。結果として、このクエリは、内部に「CD」を含むすべての文字列を選択します。
テーブル構造によると、varchar には 255 文字を含めることができます。これは非常に大きな文字列であり、おそらく多くのリソースを消費し、 LIKEなどの SQL 関数を使用して何かを検索するにはより多くの時間がかかると思います。IDでいつでも検索できます
WHERE id = something
. これははるかに高速な方法です。
、しかし、注文IDはユーザーフレンドリーなデータではないと思います。代わりに、ユーザーに製品名を使用させます。私の推奨事項は、apache Lucene または MySQL の全文検索機能 (検索パフォーマンスを向上させることができます) を使用することです。
アパッチ・ルセン
MySQL 全文検索機能
これらは、大きな文字列のリストから特定のパターンまたは単語をより高速に検索するために構築されたツールです。多くの Web サイトでは、これを使用して独自のミニ検索エンジンを構築しています。mysql の全文検索機能は学習曲線をほとんど必要とせず、簡単に =D を使用できることがわかりました